use O3 optimization