start decoupling models from DB and making a generic repository
work