Progress. Update doesn't quite work yet. Need tests.