possible improvement, untested.