conservative optimizations