Tried understanding Ilya's code, failed, started my own version. Still needs pipes but the architecture is there. Let's do a merge of the best of both.