Начал писать вторую версию.