Replaced new() with factory method