Consider doing single entry single exit with this method.