Comments

Code fully commented here