0: fixed and added more test cases