add & fix & change codes #3