Added default constructor to allow for subclassing