refactor
operations