add some explain