some refactoring taking advantage of change of +