初级版本，基本可用