Initial commit

Initial commit, once finished the bulk of the work