ioc function