refactoring all piece movement without special moves