refactor moves; add king_me and promotion