now each test can run give/when/then/error functions for each role the functions are optional, instead of add functions with empty body, now it is possible to omit them update documentation