code clean and minifed version added