Move all logic to operations