prefer protected over package private