typeclass, now I seem to finally understand what it is :)