https://stackoverflow.com/questions/8160019/why-cant-you-have-a-protected-abstract-class-in-java https://stackoverflow.com/questions/19210541/abstract-class-why-is-my-protected-method-publicly-accessible