many output refactored