factory methods can now be loaded lazily