rewrites: abstract