cleaned code.
cleaned code 2
cleaned code 3