Code methods fully commented