renamed internal function