switched to protected properties to ease extension of the class