add more test cases and revisions on source codes