@Override
	public boolean equals(@Nullable final Object obj) {
		if (obj instanceof AbstractBoard) {
			final AbstractBoard<?> other = (AbstractBoard<?>) obj;
			
			return getClass() == other.getClass() && rows == other.rows && cols == other.cols && pieces.equals(other.pieces);
		}
		
		return false;
	}