Немного подчистил код и добавил отступов