Implement a smarter viewer