Improve templates, allow for subclassing