reimplement player moves by event
refactor codes