adding some methods to assist subclassing