Automatic factory methods