make the function protected