abstracting events data out to object model collection and generising the related display code