Реорганизовал немного код, для удобства дальнейшей разработки.