Code fully commented