More improvement after some modification