some cleanup, indentation and information added.