Rename to factory interface.
Add exception and factory files.
Updates for getting the framework to standard.