做一个通用版