add dozens of functions