Added configuration classes and factory