implemented Value Objects with enum and class