code: @Override
  	public int[][][] getScoreMatrix() {
  		boolean tempStoringScoreMatrix = storingScoreMatrix;
  		if (scores == null) {
  			storingScoreMatrix = true;
  			align();
  			if (scores == null) {
  				return null;
  			}
  		}
  		int[][][] copy = scores;
  		if (tempStoringScoreMatrix) {
  			copy = new int[scores.length][scores[0].length][];
  			for (int i = 0; i < copy.length; i++) {
  				for (int j = 0; j < copy[0].length; j++) {
  					copy[i][j] = Arrays.copyOf(scores[i][j], scores[i][j].length);
  				}
  			}
  		}
  		setStoringScoreMatrix(tempStoringScoreMatrix);
  		return copy;
  	}
docs: methods for MatrixAligner