add fn function