implement preview
add preview page
merge