use base `_register` method.
use a different cache for each type (per call with @doowb)