Menu tests and model cleanup

  Cleaner model approach: make an Observable, then give it extra properties.