preliminary complete demo ，will optimize laster