trying to get factory methods to work