rewrites and additions