Таки полная реализация, проверяем ошибки и go!