Remove classes and add factory methods