add new test cases and DAO functions