This may need fleshing out with utilities, later