Commited..with some modificaction