I think this function should be protected or private.