rearrange class diagram to abstract commonalities between runner and previewer
create superclass to handle common functionality between runner and previewer