(*)fixed operation order