interface rewrite