output is now an abstraction layer formatting output