Build immutable value objects from interfaces