added some comments for better understanding