First Commit, still needs quite a bit of work.