refactor, putting all display into Window()