Used uncurry to increase laziness
Removed a redundant do