adding DatabaseIF, SQL abstraction layer