non-intrusive curry function