add initial support for generic methods