Started fleshing out a better abstraction structure for what will
be required.

Really need to sit down and think about design and how modules
will work together