compiler optimizations added