improve internal function I/F