(maybe i just don't understand the template inheritance hierarchy)