Moved model component support classes to their own files and added a CustomizerFactory to ensure that the document factory is attached