implement daonode and add test