add DAO and implementation