core: start to redesign operand handling