final with comments