playing with references and generics