separation of display concerns