incorporated feedback from @weierophinney