All cases refactored