changes according requirements