lazy values generation for immutable objects
@GenerateLazy