Generalise.

Signed-off-by: Chris Lamb <chris@chris-lamb.co.uk>