Updated with comments
Updated with comments