added more tests & an option to set a callback which reports a status