refactored show