Assignment complete, though not yet thoroughly tested.