add & fix & change #4