Project Restructure

This is an overall restructure of the initial project, to set a base
framework that we can work on