internal function exercise