implement suggestions from nate-d-olson