rewrite on self