changed private to protected to be able to extend