refactored operators