some modification 2