Split out a method to allow for easier subclassing