version modified , and some modification