Also, please add test cases for some bad paths that you can think of.