[refactor]
[refactor] add event system
moves stick to rules; preview valid moves