- Decoupled Model Creation from optimization
- Added Model Factory Method and Interfaces
- Added Model Selection Parameter