реализован основной функционал