add perfomance improvement