condition-based class