allow generic return types in clients, though need a convenient way to
create the type information
updated client to support header overrides, samples/test going in soon