nonzero check on the interface object
added __str__ func to IProgress
refactor and tidy up...  added a print_progress func
test enumerations