allow more flexibility in the type traits that the handler implmements by adding the handler factory method