See attached for comments