add abstarction to DB module