Added design.scala that contains all the design requirements