Model is simpler and cleaner now.
Guavas Optional<> class is used, and the model will/should never accept
or return null values. Also, some attributes were not properly defined.
Peoples tests will of course not compile anymore, since many of the
constructors are changed. Instead of refactoring your tests I'll let you
guys get acquainted with the new "Optional" class. Ref:
https://code.google.com/p/guava-libraries/wiki/UsingAndAvoidingNullExplained#Optional