Types, interfaces and generics - Enrico's Academy