Updated to match final submission. Working copy!