add & fix & change codes