untested. framework for output/intermediate