rewrite interface