Если пытаетесь сделать общее решение - то вряд ли получится, такую штуку нужно проектировать и дотачивать под конкретный тип применений.

Если делаете именно под конкретное понимание - то хорошо.

Если делаете "в общем" - то, в принципе, неплохая тренировка/пример. Который, опять же, можно будет взять за основу, если для какой-то конкретной системы что-то подобное потребуется.