added internal function exercise