currently I haven't met generic type to be processed,    maybe for further this should be added,  I'll add a TODO here