Added subclasses and factory