Factor out useBlock()