modified and added more