attempt at seperating display logic from business