inner function change