method SELF_TYPE