client improvements: presentation logic moved to separated class