rewriting interface