custom data probably should never be stored with the instance or matches if we want a sensible immutable interface
make clear what is expected implementation methods and user facing API
results now produce something sensible by default
document 0.20.0
0.20.0