add more tests and refine answer behavior