incorporating suggestions from @jayharris