实现基本功能，待优化