created ModelImpl, refactored AbstractModel, removed uneceesary specific Model implementations