optimize replace