先做功能，todo：性能