rewriting some interfaces