redesign api
add db init