fix #2: stop passing traits objects around: use parametric types