New factory methods