Initial Commit. Mostly working.