Implemented classic templates where variations of type parameters produce new classes.