Refactor piece ns to separate the different types of moves