Many comments/suggestions, reindenting/cleaning up