Project 1a first commit. Most implementation done