add functions and commands