First commit
Finish phase 1
phases 2,3,4