Abstract method isLegal move (checks if the piece have the 'rights' to move to the square) the board checks if target square is free, TODO: implementation of the abstract method for every subclass of Piece