optimization (for now) complete