begin refactoring output layout system for greater flexibility