further modified and added