additional testcases
additional testcases and some cleanup