allow for more subclassing