add dao interfaces and implementation