changes according to the requirements