Actually use PropertyChecks
Remove extraneous type parameter
Use map(key) instead of map.apply(key)
Tweak exception handling