more functions and variables