В целом по поводу кода ответили, там написано:)