More progress on #31

Still not sure this is where I want this to be.  I feel like it is kind
of hacked together to get it working currently.  Need to continue to
improve this and make it cleaner and easier to follow.  But its a start.