add local functions