Generics and type annotations

Complete and Continue