Refactor output handling to break circular dependency