Added protected constructor for possible descendants