Updated with latest source from course webpage