separated display from logic