forced rewrite, speed optimisations