refactor daos and add list controller