Added comments and  cleaned code