type processors are matched by trait instead of implementation class