По мере написания буду дополнять.

часть 1.

часть 2.