operator refactor