with extra test cases