с тестами и комментариями..)