Initial code push

* This is very much in progress; expect changes