simplified pointer printing. refactored container printing into an overloadable print_container function. fixed printing of iterator_range some small cleanups