Updated to latest source from course webpage