going data oriented is overly complex and not elegant. I'll read more and try to come up with something.