refactoring fixes
new Core classes
adding Dao abstract