Make it more generic, it can almost be used for other viewers now.