Ditched ImplementationAdapter as it was mutating

No idea why, but it was mutating the original tree, leading to
check errors... Another evening spent debugging specialization
instead of preparing useful features. :((