Improved the move representation.
merge
Slightly refactored move logic again and made it work.