a pluggable function