Passes more tests
Updated type checking
Updated test