Final update with comments and everything