use fn.extend