changed after add a new class and make some modifying