merge request

please help me review code, thanks
Why bother use self within a `=>`?