optimization logic