Requirements

If you create an equals() you need to create a hashcode(). run codepro on this branch to double check