Added test cases and fixed a few issues