refactoring model and mediators to interface
refactored model constructor