implement grant

Fixes #2
poolPub (renamed to poolResponse) is now shared between .publish and .grant