avoid duplicating a history qualifier
use generics and tidy