hlist instead of tuples