added some tests. Also Found one problem usage case and add the test which now is failed. I don't know how to fix it yet...