Next generation

This should be fully functional
Submitting for review and feedback