Massive changes with lots of test cases added