Added Comments to explain whats doing what