playing around with more generics