move common rendering to abstract class Renderer
outsource event dispatching to seperate method
extract list rendering to new list template