add new test cases and todos