template inheritance rocks