full assignment with comments