refactored product view