Весь код также можно проверить на github: