Experiment on select and moving.

There still some error logic on select and moving, need refactor.