Refactoring + Database Abstract