Cells are moving correctly now

However sometimes the selection is wrong.
Simplified canMove() - does return boolean again.