this is used to recursive wildcard, let's add some comment :P