add non-cahe func'