first init, 需要充分测试