prototype of main and DiffViewer