First commit. Still needs a lot of work.