Added comments, organize includes and more