implement previewer