basic Typeclass introduction