First commit. 1.0 feature complete