learned c++ 11
learned c# interface
learned c# generic