add newfunction