added the ability to supply IO::Handles was well as callbacks