clean up comments, add more test cases