Added annotations + ensured template parameter names are cast as strings