use Type instead of class to capture generic info, implements setter injection of List