Updated with comments and fill functionality