refactored preview interface