before optimizations