initial optimizations