add func support