specifications for complete rewrite