Из любопытства, что в нем особенного, что отличает от кучи существующих решений?
Ничего особенного, если готовое решение гибкое, то можно кастомизировать его под наши нужды.
(хотя такое ощущение, что написание снуля и кастомизация готового займет примерно одинаковое количество кода)
Это сорт оф учебная задача для новичка, кто хочет поупражняться