Made IO compatible with lambdas, moved methods to IOFunctions