Adding some comments
implemented rest of read
merging
Argument passing
Moving declarations around to make more sense
Merging