this is how I plan to build the objects …

I'm really not very good at Moose though.  This could be all wrong.