[products] lot less code duplication

a bunch of the classes in h1.hh were actually functionally equivalent to
l2 counterparts