Created our own interface for Stringer which supports String and DetailedString. Now structs can return their own formatted strings and formatOutput() doesnt have to care what it looks like.