Updated for v2.2; Next goal is to fix up extra credit