Initial Commit
implemented all of the rules