I've added a couple of "templates" - an abstract utility and an abstract class