refactor
add DatabaseService