i did some modification in the name of methods for better readablity