Implemented factories and their interfaces.