Refactor. Prep for CRTP changes.
Test