fix factory methods