add naming
shallow copy can handle "self" key now