Initial Commit. Rough and sparse on comments but functional.