add an output parameter and and setters for functions
avoid potential symbol name conflicts
add a json printer
add test suite configuration from command line arguments