use stream api more thoroughly through a helper class which converts
IOExceptions to UncheckedIOExceptions