modify and obtimisation