State changing is optimized