This function should be protected