function set to protected