refactoring...
king rules