Nested factory method