Updated with Extra Credit additions.