Привёл в порядок код.
Нужно ещё рефакторить