add presenter module
refactoring the viewer and template renaming
more refactoring
added a header
build versions