Make IO Providers take a source as an argument