To hopefully make the use of trait a bit clearer. This is where higher kinded types would have been nice.