add  functions and variables