[225701,246188] documentation, move non API packages to under internal
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/LowVisionType.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/LowVisionType.java
index a58b06c..fedf95b 100644
--- a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/LowVisionType.java
+++ b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/LowVisionType.java
@@ -11,12 +11,15 @@
 
 package org.eclipse.actf.visualization.engines.lowvision;
 
+import org.eclipse.actf.visualization.engines.lowvision.image.PageImageFactory;
 import org.eclipse.actf.visualization.internal.engines.lowvision.operator.CVDOp;
 import org.eclipse.actf.visualization.internal.engines.lowvision.operator.ColorFilterOp;
 import org.eclipse.actf.visualization.internal.engines.lowvision.operator.GlareOp;
 
 /**
  * This class defines low vision simulation type
+ * 
+ * @see PageImageFactory
  */
 public class LowVisionType {
 
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/TargetPage.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/PageEvaluation.java
similarity index 81%
rename from plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/TargetPage.java
rename to plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/PageEvaluation.java
index 09a7c0f..7473a5a 100644
--- a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/TargetPage.java
+++ b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/PageEvaluation.java
@@ -7,6 +7,7 @@
  *
  * Contributors:
  *    Junji MAEDA - initial API and implementation
+ *    Kentarou FUKUDA - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.actf.visualization.engines.lowvision;
@@ -39,7 +40,10 @@
 import org.eclipse.actf.visualization.internal.engines.lowvision.problem.LowVisionProblemGroup;
 import org.eclipse.actf.visualization.internal.engines.lowvision.problem.ProblemItemLV;
 
-public class TargetPage {
+/**
+ * Utility class to evaluate accessibility of {@link IPageImage}
+ */
+public class PageEvaluation {
 	private static final int UNSET = -1;
 
 	private IPageImage pageImage = null; // rendered image in browser
@@ -60,21 +64,16 @@
 
 	private String overallRatingImageString = "";
 
-	public TargetPage() {
-	}
-
-	public void disposePageImage() {
-		pageImage.disposeInt2D();
-	}
-
-	public IPageImage getPageImage() {
-		return (pageImage);
-	}
-
-	public void setPageImage(IPageImage _pi) {
-		pageImage = _pi;
+	/**
+	 * Constructor of PageEvaluation utility
+	 * 
+	 * @param _pageImage
+	 *            target {@link IPageImage}
+	 */
+	public PageEvaluation(IPageImage _pageImage) {
+		pageImage = _pageImage;
 		if (pageImage != null) {
-			if (pageImage.isInteriorImageArraySet()) {
+			if (pageImage.hasInteriorImageArraySet()) {
 				try {
 					pageImage.extractCharacters();
 				} catch (ImageException e) {
@@ -94,6 +93,20 @@
 		}
 	}
 
+	/**
+	 * Get target {@link IPageImage}
+	 * 
+	 * @return target {@link IPageImage}
+	 */
+	public IPageImage getPageImage() {
+		return (pageImage);
+	}
+
+	/**
+	 * Get interior image position (e.g., <img> position in HTML page image)
+	 * 
+	 * @return array of {@link ImagePositionInfo}
+	 */
 	public ImagePositionInfo[] getInteriorImagePosition() {
 		if (pageImage == null) {
 			return (null);
@@ -101,6 +114,12 @@
 		return (pageImage.getInteriorImagePosition());
 	}
 
+	/**
+	 * Set interior image position (e.g., <img> position in HTML page image)
+	 * 
+	 * @param infoArray
+	 *            array of {@link ImagePositionInfo}
+	 */
 	public void setInteriorImagePosition(ImagePositionInfo[] infoArray) {
 		if (pageImage != null) {
 			pageImage.setInteriorImagePosition(infoArray);
@@ -114,6 +133,9 @@
 		}
 	}
 
+	/**
+	 * @param _styleMap
+	 */
 	public void setCurrentStyles(Map<String, ICurrentStyles> _styleMap) {
 		Set<String> keySet = _styleMap.keySet();
 		int len = keySet.size();
@@ -130,52 +152,58 @@
 		}
 	}
 
+	/**
+	 * Get allowed foreground colors
+	 * 
+	 * @return array of allowed foreground colors
+	 */
 	public String[] getAllowedForegroundColors() {
 		return (allowedForegroundColors);
 	}
 
+	/**
+	 * Get allowed background colors
+	 * 
+	 * @return array of allowed background colors
+	 */
 	public String[] getAllowedBackgroundColors() {
 		return (allowedBackgroundColors);
 	}
 
+	/**
+	 * Set allowed foreground/background colors
+	 * 
+	 * @param _fg
+	 *            array of allowed foreground colors
+	 * @param _bg
+	 *            array of allowed background colors
+	 */
 	public void setAllowedColors(String[] _fg, String[] _bg) {
 		allowedForegroundColors = _fg;
 		allowedBackgroundColors = _bg;
 	}
 
-	public void setAllowedForegroundColors(String[] _fg) {
-		allowedForegroundColors = _fg;
-	}
-
-	public void setAllowedBackgroundColors(String[] _bg) {
-		allowedBackgroundColors = _bg;
-	}
-
-	public void clearAllowedColors() {
-		allowedForegroundColors = null;
-		allowedBackgroundColors = null;
-	}
-
-	public void clearAllowedForegroundColors() {
-		allowedForegroundColors = null;
-	}
-
-	public void clearAllowedBackgroundColors() {
-		allowedBackgroundColors = null;
-	}
-
-	public List<IProblemItem> check(LowVisionType _lvType, String urlS,
-			int frameId) {
+	/**
+	 * Evaluate accessibility of target {@link IPageImage}
+	 * 
+	 * @param type
+	 *            target low vision type
+	 * @param urlS
+	 *            target's URL
+	 * @param frameId
+	 *            target's frame ID
+	 * @return found accessibility issues as list of {@link IProblemItem}
+	 * @see LowVisionType
+	 */
+	public List<IProblemItem> check(LowVisionType type, String urlS, int frameId) {
 
 		List<IProblemItem> problemList = new ArrayList<IProblemItem>();
 
 		if (pageImage != null) {
 			try {
-				problemList = pageImage.checkCharacters(_lvType, urlS, frameId);
-			} catch (LowVisionProblemException lvpe) {
-				lvpe.printStackTrace();
-			} catch (ImageException ie) {
-				ie.printStackTrace();
+				problemList = pageImage.checkCharacters(type, urlS, frameId);
+			} catch (Exception e) {
+				e.printStackTrace();
 			}
 		}
 
@@ -187,8 +215,8 @@
 				if (curElement == null) {
 					continue;
 				}
-				LowVisionProblem[] curProblemArray = curElement.check(_lvType,
-						this);
+				LowVisionProblem[] curProblemArray = curElement.check(type,
+						allowedForegroundColors, allowedBackgroundColors);
 				int curLen = 0;
 				if (curProblemArray != null) {
 					curLen = curProblemArray.length;
@@ -226,7 +254,7 @@
 		int totalSeverity = 0;
 		for (IProblemItem item : problemList) {
 			if (item instanceof ProblemItemLV) {
-				totalSeverity += ((IProblemItemImage)item).getSeverityLV();
+				totalSeverity += ((IProblemItemImage) item).getSeverityLV();
 			}
 		}
 		overallRatingString = ScoreUtil.getScoreString(totalSeverity);
@@ -237,6 +265,13 @@
 	// Max size of Problem Map image
 	private static final int PROBLEM_MAP_LENGTH = 100;
 
+	/**
+	 * Generate report file for unsupported mode
+	 * 
+	 * @param targetFile
+	 *            target file path to save report
+	 * @throws LowVisionException
+	 */
 	public void unsupportedModeReport(File targetFile)
 			throws LowVisionException {
 
@@ -258,9 +293,21 @@
 		}
 	}
 
-	public void makeAndStoreReport(String _path, String _htmlName,
-			String _imgName, List<IProblemItem> _problemGroupArray)
-			throws LowVisionException {
+	/**
+	 * Generate report file from {@link IProblemItem} list.
+	 * 
+	 * @param _path
+	 *            target path
+	 * @param _htmlName
+	 *            report file name
+	 * @param _imgName
+	 *            report image file name
+	 * @param _problemGroupArray
+	 *            target {@link IProblemItem} list
+	 * @throws LowVisionException
+	 */
+	public void generateReport(String _path, String _htmlName, String _imgName,
+			List<IProblemItem> _problemGroupArray) throws LowVisionException {
 		boolean doMakeProblemMap = true;
 		if (this.pageImage == null)
 			doMakeProblemMap = false;
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/image/IInt2D.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/image/IInt2D.java
deleted file mode 100644
index 7a65f12..0000000
--- a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/image/IInt2D.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and Others
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Kentarou FUKUDA - initial API and implementation
- *******************************************************************************/
-package org.eclipse.actf.visualization.engines.lowvision.image;
-
-import java.awt.image.BufferedImage;
-
-import org.eclipse.actf.visualization.engines.lowvision.LowVisionIOException;
-
-public interface IInt2D {
-
-	public abstract int getWidth();
-
-	public abstract int getHeight();
-
-	public abstract BufferedImage toBufferedImage();
-
-	public abstract void writeToBMPFile(String _fileName)
-			throws LowVisionIOException;
-
-	public abstract void writeToBMPFile(String _fileName, int _bitCount)
-			throws LowVisionIOException;
-
-	public abstract void fill(int _color);
-
-	public abstract IInt2D cutMargin(int _m) throws ImageException;
-
-	public int[][] getData();
-
-	public IInt2D deepCopy();
-
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/image/IPageImage.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/image/IPageImage.java
index fa5e502..dee742b 100644
--- a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/image/IPageImage.java
+++ b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/image/IPageImage.java
@@ -1,11 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and Others
+ * Copyright (c) 2003, 2008 IBM Corporation and Others
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
  * Contributors:
+ *    Junji MAEDA - initial API and implementation
  *    Kentarou FUKUDA - initial API and implementation
  *******************************************************************************/
 package org.eclipse.actf.visualization.engines.lowvision.image;
@@ -14,31 +15,102 @@
 import java.util.List;
 
 import org.eclipse.actf.model.ui.ImagePositionInfo;
+import org.eclipse.actf.visualization.engines.lowvision.LowVisionIOException;
 import org.eclipse.actf.visualization.engines.lowvision.LowVisionType;
 import org.eclipse.actf.visualization.eval.problem.IProblemItem;
 import org.eclipse.actf.visualization.internal.engines.lowvision.problem.LowVisionProblemException;
 
+/**
+ * Interface to store image data used in low vision simulation engine
+ */
 public interface IPageImage {
 
-	public abstract IInt2D getInt2D();
-
+	/**
+	 * Get width of image
+	 * 
+	 * @return width
+	 */
 	public int getWidth();
 
+	/**
+	 * Get height of image
+	 * 
+	 * @return image
+	 */
 	public int getHeight();
 
-	public void disposeInt2D();
-
+	/**
+	 * Extract character position in the image
+	 * 
+	 * @throws ImageException
+	 */
 	public void extractCharacters() throws ImageException;
 
+	/**
+	 * Get interior image position (e.g., <img> position in HTML page image)
+	 * 
+	 * @return array of {@link ImagePositionInfo}
+	 */
 	public ImagePositionInfo[] getInteriorImagePosition();
 
+	/**
+	 * Set interior image position (e.g., <img> position in HTML page image)
+	 * 
+	 * @param infoArray
+	 *            array of {@link ImagePositionInfo}
+	 */
 	public void setInteriorImagePosition(ImagePositionInfo[] infoArray);
 
-	public boolean isInteriorImageArraySet();
+	/**
+	 * Check existence of interior image position information
+	 * 
+	 * @return true if interior image position is specified
+	 */
+	public boolean hasInteriorImageArraySet();
 
-	public List<IProblemItem> checkCharacters(LowVisionType _lvType, String urlS, int frameId)
-			throws ImageException, LowVisionProblemException;
+	/**
+	 * Check accessibility issues inside the image.
+	 * 
+	 * @param type
+	 *            target low vision type
+	 * @param urlS
+	 *            target's URL
+	 * @param frameId
+	 *            target's frame ID
+	 * @return list of accessibility issues ({@link IProblemItem})
+	 * @throws ImageException
+	 * @throws LowVisionProblemException
+	 */
+	public List<IProblemItem> checkCharacters(LowVisionType type, String urlS,
+			int frameId) throws ImageException, LowVisionProblemException;
 
+	/**
+	 * Convert image data into {@link BufferedImage}
+	 * 
+	 * @return image as new {@link BufferedImage}
+	 */
 	public BufferedImage getBufferedImage();
 
+	/**
+	 * Write image to File as Bitmap
+	 * 
+	 * @param _fileName
+	 *            target file path
+	 * @throws LowVisionIOException
+	 */
+	public abstract void writeToBMPFile(String _fileName)
+			throws LowVisionIOException;
+
+	/**
+	 * Write image to File as Bitmap
+	 * 
+	 * @param _fileName
+	 *            target file path
+	 * @param _bitCount
+	 *            depth of color (16 or 24)
+	 * @throws LowVisionIOException
+	 */
+	public abstract void writeToBMPFile(String _fileName, int _bitCount)
+			throws LowVisionIOException;
+
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/image/ImageDumpUtil.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/image/ImageDumpUtil.java
deleted file mode 100644
index ce78983..0000000
--- a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/image/ImageDumpUtil.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and Others
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Kentarou FUKUDA - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.actf.visualization.engines.lowvision.image;
-
-import org.eclipse.actf.visualization.internal.engines.lowvision.Messages;
-import org.eclipse.actf.visualization.internal.engines.lowvision.image.Int2D;
-import org.eclipse.actf.visualization.internal.engines.lowvision.image.PageImage;
-import org.eclipse.actf.visualization.internal.engines.lowvision.io.BMPReader;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.MessageBox;
-import org.eclipse.swt.widgets.Shell;
-
-public class ImageDumpUtil {
-
-	private static boolean LV16BIT = false;
-
-	public static synchronized IPageImage joinPageImages(String saveFileName,
-			IPageImage[] targets) {
-		Int2D int2dWhole = new Int2D(0, 0);
-		int iWholeWidth = 0;
-		int iWholeHeight = 0;
-
-		if (targets != null && saveFileName != null) {
-			for (int i = 0; i < targets.length; i++) {
-				IInt2D tmpInt2d;
-				tmpInt2d = targets[i].getInt2D();
-				if (iWholeWidth < tmpInt2d.getWidth())
-					iWholeWidth = tmpInt2d.getWidth();
-				iWholeHeight += tmpInt2d.getHeight();
-			}
-
-			int2dWhole = new Int2D(iWholeWidth, iWholeHeight);
-
-			try {
-
-				int iDrawY = 0;
-				for (int i = 0; i < targets.length; i++) {
-					IInt2D tmpInt2d = targets[i].getInt2D();
-					for (int k = 0; k < tmpInt2d.getHeight(); k++) {
-						System.arraycopy(tmpInt2d.getData()[k], 0,
-								int2dWhole.getData()[iDrawY + k], 0, tmpInt2d.getWidth());
-					}
-					iDrawY += tmpInt2d.getHeight();
-				}
-
-				int2dWhole.writeToBMPFile(saveFileName);
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-		}
-		return (new PageImage(int2dWhole));
-	}
-
-	static public IPageImage createPageImage(String bmpFileName, Shell _shell) {
-
-		// TODO without file
-		IInt2D int2dWhole = new Int2D(0, 0);
-
-		try {
-			int2dWhole = Int2DFactory.createInt2D(bmpFileName);
-			PageImage result = new PageImage(int2dWhole);
-			int2dWhole = null;
-
-			try {
-				LV16BIT = BMPReader.getBitCount(bmpFileName) == 16;
-			} catch (Exception e2) {
-				// TODO
-				LV16BIT = true;
-			}
-
-			return (result);
-		} catch (Exception e) {
-			MessageBox box1 = new MessageBox(_shell, SWT.OK | SWT.ICON_WARNING);
-			box1.setMessage(Messages.getString("ImageDumpUtil.TrueColor"));
-			box1.open();
-		}
-
-		return (null);
-	}
-
-	public static boolean isLV16BIT() {
-		return LV16BIT;
-	}
-
-}
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/image/ImageException.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/image/ImageException.java
index 21ec9d0..b700abf 100644
--- a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/image/ImageException.java
+++ b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/image/ImageException.java
@@ -10,13 +10,26 @@
  *******************************************************************************/
 package org.eclipse.actf.visualization.engines.lowvision.image;
 
-public class ImageException extends Exception{
+/**
+ * Exception relates to images used in low vision simulation engine.
+ */
+public class ImageException extends Exception {
 	private static final long serialVersionUID = -3796816367042170808L;
 
-	public ImageException(){
+	/**
+	 * Constructor of Exception
+	 */
+	public ImageException() {
 		super();
 	}
-	public ImageException( String _s ){
-		super(_s);
+
+	/**
+	 * Constructor of Exception
+	 * 
+	 * @param msg
+	 *            exception message
+	 */
+	public ImageException(String msg) {
+		super(msg);
 	}
 }
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/image/Int2DFactory.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/image/Int2DFactory.java
deleted file mode 100644
index 84ae512..0000000
--- a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/image/Int2DFactory.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and Others
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Kentarou FUKUDA - initial API and implementation
- *******************************************************************************/
-package org.eclipse.actf.visualization.engines.lowvision.image;
-
-import java.io.InputStream;
-
-import org.eclipse.actf.visualization.engines.lowvision.LowVisionIOException;
-import org.eclipse.actf.visualization.internal.engines.lowvision.image.Int2D;
-import org.eclipse.actf.visualization.internal.engines.lowvision.io.BMPReader;
-
-public class Int2DFactory {
-
-	public static IInt2D createInt2D(int width, int height) {
-		return new Int2D(width, height);
-	}
-
-	public static IInt2D createInt2D(int width, int height, int[][] data)
-			throws ImageException {
-		return new Int2D(width, height, data);
-	}
-
-	public static IInt2D createInt2D(String fileName)
-			throws LowVisionIOException {
-		return (BMPReader.readInt2D(fileName));
-	}
-
-	public static IInt2D createInt2D(InputStream is)
-			throws LowVisionIOException {
-		return (BMPReader.readInt2D(is));
-	}
-
-}
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/image/PageImageFactory.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/image/PageImageFactory.java
index e79c90b..11ac7da 100644
--- a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/image/PageImageFactory.java
+++ b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/engines/lowvision/image/PageImageFactory.java
@@ -10,28 +10,158 @@
  *******************************************************************************/
 package org.eclipse.actf.visualization.engines.lowvision.image;
 
+import java.io.InputStream;
+
 import org.eclipse.actf.visualization.engines.lowvision.LowVisionType;
+import org.eclipse.actf.visualization.internal.engines.lowvision.image.IInt2D;
+import org.eclipse.actf.visualization.internal.engines.lowvision.image.Int2D;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.PageImage;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.SimulatedPageImage;
+import org.eclipse.actf.visualization.internal.engines.lowvision.io.BMPReader;
 
+/**
+ * Factory for {@link IPageImage} instance.
+ */
 public class PageImageFactory {
 
+	/**
+	 * Create empty {@link IPageImage} instance
+	 * 
+	 * @return empty {@link IPageImage} instance
+	 */
 	public static IPageImage createPageImage() {
 		return new PageImage();
 	}
 
-	public static IPageImage createPageImage(IInt2D int2d) {
-		return new PageImage(int2d, true);
+	/**
+	 * Simulate low vision user's view by using {@link LowVisionType}
+	 * configuration and return result as new {@link IPageImage} instance
+	 * 
+	 * @param target
+	 *            target {@link IPageImage}
+	 * @param type
+	 *            target {@link LowVisionType} for simulation
+	 * @return simulation result as new {@link IPageImage} instance
+	 * @throws ImageException
+	 * @see LowVisionType
+	 */
+	public static IPageImage createSimulationPageImage(IPageImage target,
+			LowVisionType type) throws ImageException {
+		return new SimulatedPageImage(target, type);
 	}
 
-	public static IPageImage createPageImage(IInt2D int2d,
+	/**
+	 * Read image data (bitmap) from target file and create new
+	 * {@link IPageImage} instance
+	 * 
+	 * @param bmpFileName
+	 *            target bitmap file name
+	 * @return new {@link IPageImage} instance, or null if not available
+	 */
+	static public IPageImage createPageImage(String bmpFileName) {
+		return createPageImage(bmpFileName, false);
+	}
+
+	/**
+	 * Read image data (bitmap) from target file and create new
+	 * {@link IPageImage} instance. If removeScrollBar flag is true, cut scroll
+	 * bar area from image
+	 * 
+	 * @param bmpFileName
+	 *            target bitmap file name
+	 * @param removeScrollBar
+	 *            if true, cut scroll bar area from image
+	 * @return new {@link IPageImage} instance, or null if not available
+	 */
+	static public IPageImage createPageImage(String bmpFileName,
 			boolean removeScrollBar) {
-		return new PageImage(int2d, removeScrollBar);
+
+		IInt2D int2dWhole = new Int2D(0, 0);
+		try {
+			int2dWhole = (BMPReader.readInt2D(bmpFileName));
+			PageImage result = new PageImage(int2dWhole, removeScrollBar);
+			int2dWhole = null;
+			return (result);
+		} catch (Exception e) {
+			// TODO
+		}
+
+		return (null);
 	}
 
-	public static IPageImage createSimulationPageImage(IPageImage original,
-			LowVisionType type) throws ImageException{
-		return new SimulatedPageImage(original, type);
+	/**
+	 * Read image data (bitmap) from {@link InputStream} and create new
+	 * {@link IPageImage} instance
+	 * 
+	 * @param is
+	 *            target {@link InputStream} of image data
+	 * @return new {@link IPageImage} instance, or null if not available
+	 */
+	static public IPageImage createPageImage(InputStream is) {
+		return createPageImage(is, false);
+	}
+
+	/**
+	 * Read image data (bitmap) from {@link InputStream} and create new
+	 * {@link IPageImage} instance. If removeScrollBar flag is true, cut scroll
+	 * bar area from image
+	 * 
+	 * @param is
+	 *            target {@link InputStream} of image data
+	 * @param removeScrollBar
+	 *            if true, cut scroll bar area from image
+	 * @return new {@link IPageImage} instance, or null if not available
+	 */
+	static public IPageImage createPageImage(InputStream is,
+			boolean removeScrollBar) {
+
+		IInt2D int2dWhole = new Int2D(0, 0);
+		try {
+			int2dWhole = BMPReader.readInt2D(is);
+			PageImage result = new PageImage(int2dWhole, removeScrollBar);
+			int2dWhole = null;
+			return (result);
+		} catch (Exception e) {
+			// TODO
+		}
+
+		return (null);
+	}
+
+	/**
+	 * Join multiple {@link IPageImage} into new {@link IPageImage} instance
+	 * 
+	 * @param targets
+	 *            array of target {@link IPageImage}
+	 * @return new {@link IPageImage} instance
+	 */
+	public static synchronized IPageImage joinPageImages(IPageImage[] targets) {
+		Int2D int2dWhole = new Int2D(0, 0);
+		int iWholeWidth = 0;
+		int iWholeHeight = 0;
+
+		if (targets != null) {
+			for (int i = 0; i < targets.length; i++) {
+				if (iWholeWidth < targets[i].getWidth())
+					iWholeWidth = targets[i].getWidth();
+				iWholeHeight += targets[i].getHeight();
+			}
+
+			int2dWhole = new Int2D(iWholeWidth, iWholeHeight);
+
+			int iDrawY = 0;
+			for (int i = 0; i < targets.length; i++) {
+				//TODO
+				IInt2D tmpInt2d = ((PageImage)targets[i]).getInt2D();
+				for (int k = 0; k < tmpInt2d.getHeight(); k++) {
+					System.arraycopy(tmpInt2d.getData()[k], 0, int2dWhole
+							.getData()[iDrawY + k], 0, tmpInt2d.getWidth());
+				}
+				iDrawY += tmpInt2d.getHeight();
+			}
+
+		}
+		return (new PageImage(int2dWhole));
 	}
 
 }
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/PageElement.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/PageElement.java
index 1718e88..a6d3934 100644
--- a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/PageElement.java
+++ b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/PageElement.java
@@ -18,7 +18,6 @@
 import org.eclipse.actf.model.ui.editor.browser.ICurrentStyles;
 import org.eclipse.actf.visualization.engines.lowvision.LowVisionException;
 import org.eclipse.actf.visualization.engines.lowvision.LowVisionType;
-import org.eclipse.actf.visualization.engines.lowvision.TargetPage;
 import org.eclipse.actf.visualization.engines.lowvision.image.ImageException;
 import org.eclipse.actf.visualization.internal.engines.lowvision.checker.W3CColorChecker;
 import org.eclipse.actf.visualization.internal.engines.lowvision.color.ColorCSS;
@@ -43,22 +42,23 @@
 	// IE fontsize
 	static final String IE_LARGEST_FONT = "16pt";
 	static final double IE_EM_SCALING = 1.33; // "1em" in largest
-												// (experimental)
+	// (experimental)
 	static final double IE_LARGER_SCALING = 1.67; // "larger" in largest
-													// (experimental)
+	// (experimental)
 	static final double IE_SMALLER_SCALING = 1.00; // "smaller" in largest
-													// (experimental)
+	// (experimental)
 
-	//severity for fixed size font (0-1)
+	// severity for fixed size font (0-1)
 	public static final double SEVERITY_FIXED_SIZE_FONT = 0.25;
 	public static final double SEVERITY_SMALL_FONT = 0.25;
-	public static final double SEVERITY_FIXED_SMALL_FONT = SEVERITY_FIXED_SIZE_FONT + SEVERITY_SMALL_FONT;
-	// severity for color problems 
+	public static final double SEVERITY_FIXED_SMALL_FONT = SEVERITY_FIXED_SIZE_FONT
+			+ SEVERITY_SMALL_FONT;
+	// severity for color problems
 	public static final double SEVERITY_PROHIBITED_FOREGROUND_COLOR = 0.5;
 	public static final double SEVERITY_PROHIBITED_BACKGROUND_COLOR = 0.5;
-	public static final double SEVERITY_PROHIBITED_BOTH_COLORS = SEVERITY_PROHIBITED_FOREGROUND_COLOR + SEVERITY_PROHIBITED_BACKGROUND_COLOR;
+	public static final double SEVERITY_PROHIBITED_BOTH_COLORS = SEVERITY_PROHIBITED_FOREGROUND_COLOR
+			+ SEVERITY_PROHIBITED_BACKGROUND_COLOR;
 
-	
 	private static final String DELIM = "/";
 
 	// text check
@@ -165,9 +165,8 @@
 	}
 
 	// _lvType: for LowVision error check
-	// _targetPage: for guideline check
 	public LowVisionProblem[] check(LowVisionType _lvType,
-			TargetPage _targetPage) {
+			String[] allowedFgColors, String[] allowedBgColors) {
 		Vector<LowVisionProblem> problemVec = new Vector<LowVisionProblem>();
 
 		// ignore elements not in the rendered area
@@ -226,27 +225,19 @@
 			problemVec.addElement(sfp);
 		}
 
-		String[] allowedForegroundColors = _targetPage
-				.getAllowedForegroundColors();
-		String[] allowedBackgroundColors = _targetPage
-				.getAllowedBackgroundColors();
 		ProhibitedForegroundColorProblem pfcp = null;
 		ProhibitedBackgroundColorProblem pbcp = null;
 
-		if (allowedForegroundColors != null
-				&& allowedForegroundColors.length > 0) {
+		if (allowedFgColors != null && allowedFgColors.length > 0) {
 			try {
-				pfcp = checkAllowedForegroundColors(_lvType,
-						allowedForegroundColors);
+				pfcp = checkAllowedForegroundColors(_lvType, allowedFgColors);
 			} catch (LowVisionException lve) {
 				lve.printStackTrace();
 			}
 		}
-		if (allowedBackgroundColors != null
-				&& allowedBackgroundColors.length > 0) {
+		if (allowedBgColors != null && allowedBgColors.length > 0) {
 			try {
-				pbcp = checkAllowedBackgroundColors(_lvType,
-						allowedBackgroundColors);
+				pbcp = checkAllowedBackgroundColors(_lvType, allowedBgColors);
 			} catch (LowVisionException lve) {
 				lve.printStackTrace();
 			}
@@ -254,8 +245,7 @@
 		if ((pfcp != null) && (pbcp != null)) {// fg/bg
 			try {
 				problemVec.addElement(new ProhibitedBothColorsProblem(this,
-						_lvType,
-						PageElement.SEVERITY_PROHIBITED_BOTH_COLORS));
+						_lvType, PageElement.SEVERITY_PROHIBITED_BOTH_COLORS));
 			} catch (LowVisionProblemException lvpe) {
 				lvpe.printStackTrace();
 			}
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/character/CharacterMS.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/character/CharacterMS.java
index d4f06be..abc48ef 100644
--- a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/character/CharacterMS.java
+++ b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/character/CharacterMS.java
@@ -11,11 +11,11 @@
 
 package org.eclipse.actf.visualization.internal.engines.lowvision.character;
 
-import org.eclipse.actf.visualization.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.engines.lowvision.image.IPageImage;
 import org.eclipse.actf.visualization.engines.lowvision.image.ImageException;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.ConnectedComponent;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.Container;
+import org.eclipse.actf.visualization.internal.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.Int2D;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.PageComponent;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.Topology;
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/character/CharacterSM.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/character/CharacterSM.java
index b69f69c..1407d0c 100644
--- a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/character/CharacterSM.java
+++ b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/character/CharacterSM.java
@@ -11,11 +11,11 @@
 
 package org.eclipse.actf.visualization.internal.engines.lowvision.character;
 
-import org.eclipse.actf.visualization.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.engines.lowvision.image.IPageImage;
 import org.eclipse.actf.visualization.engines.lowvision.image.ImageException;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.ConnectedComponent;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.Container;
+import org.eclipse.actf.visualization.internal.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.Int2D;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.PageComponent;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.Topology;
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/character/CharacterSS.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/character/CharacterSS.java
index 601f5cb..4826945 100644
--- a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/character/CharacterSS.java
+++ b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/character/CharacterSS.java
@@ -11,11 +11,11 @@
 
 package org.eclipse.actf.visualization.internal.engines.lowvision.character;
 
-import org.eclipse.actf.visualization.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.engines.lowvision.image.IPageImage;
 import org.eclipse.actf.visualization.engines.lowvision.image.ImageException;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.ConnectedComponent;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.Container;
+import org.eclipse.actf.visualization.internal.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.Int2D;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.PageComponent;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.Topology;
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/checker/CharacterChecker.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/checker/CharacterChecker.java
index 22564a6..f8f83c6 100644
--- a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/checker/CharacterChecker.java
+++ b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/checker/CharacterChecker.java
@@ -17,7 +17,6 @@
 import java.util.Vector;
 
 import org.eclipse.actf.visualization.engines.lowvision.LowVisionType;
-import org.eclipse.actf.visualization.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.engines.lowvision.image.ImageException;
 import org.eclipse.actf.visualization.internal.engines.lowvision.DecisionMaker;
 import org.eclipse.actf.visualization.internal.engines.lowvision.character.CharacterMS;
@@ -27,6 +26,7 @@
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.BinaryImage;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.ConnectedComponent;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.Container;
+import org.eclipse.actf.visualization.internal.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.Int2D;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.PageImage;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.Topology;
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/BinaryImage.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/BinaryImage.java
index a7c8c3e..5d84e39 100644
--- a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/BinaryImage.java
+++ b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/BinaryImage.java
@@ -17,7 +17,6 @@
 import java.io.PrintWriter;
 import java.util.Vector;
 
-import org.eclipse.actf.visualization.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.engines.lowvision.image.ImageException;
 
 /*
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/ColorHistogram.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/ColorHistogram.java
index 2f83e1d..df87724 100644
--- a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/ColorHistogram.java
+++ b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/ColorHistogram.java
@@ -17,7 +17,6 @@
 import java.util.Comparator;
 import java.util.HashMap;
 
-import org.eclipse.actf.visualization.engines.lowvision.image.IInt2D;
 
 
 public class ColorHistogram {
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/IInt2D.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/IInt2D.java
new file mode 100644
index 0000000..4d0c4a1
--- /dev/null
+++ b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/IInt2D.java
@@ -0,0 +1,102 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2008 IBM Corporation and Others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Junji MAEDA - initial API and implementation
+ *    Kentarou FUKUDA - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.actf.visualization.internal.engines.lowvision.image;
+
+import java.awt.image.BufferedImage;
+
+import org.eclipse.actf.visualization.engines.lowvision.LowVisionIOException;
+import org.eclipse.actf.visualization.engines.lowvision.image.ImageException;
+
+/**
+ * Interface to store image data as 2D integer array. <br>
+ * data[y][x] = BufferdImage.TYPE_INT_RGB (null, R, G, B)<br>
+ * data[0][0] is top left
+ */
+public interface IInt2D {
+
+	/**
+	 * Get width of image
+	 * 
+	 * @return width
+	 */
+	public abstract int getWidth();
+
+	/**
+	 * Get height of image
+	 * 
+	 * @return height
+	 */
+	public abstract int getHeight();
+
+	/**
+	 * Convert image data into {@link BufferedImage}
+	 * 
+	 * @return image as {@link BufferedImage}
+	 */
+	public abstract BufferedImage toBufferedImage();
+
+	/**
+	 * Write image to File as Bitmap
+	 * 
+	 * @param _fileName
+	 *            target file path
+	 * @throws LowVisionIOException
+	 */
+	public abstract void writeToBMPFile(String _fileName)
+			throws LowVisionIOException;
+
+	/**
+	 * Write image to File as Bitmap
+	 * 
+	 * @param _fileName
+	 *            target file path
+	 * @param _bitCount
+	 *            depth of color (16 or 24)
+	 * @throws LowVisionIOException
+	 */
+	public abstract void writeToBMPFile(String _fileName, int _bitCount)
+			throws LowVisionIOException;
+
+	/**
+	 * Fill image data with specified color.<br>
+	 * (BufferdImage.TYPE_INT_RGB (null, R, G, B))
+	 * 
+	 * @param _color
+	 * @see BufferedImage
+	 */
+	public abstract void fill(int _color);
+
+	/**
+	 * Cut margin pixels and return as new {@link IInt2D}
+	 * 
+	 * @param _m
+	 *            target margin
+	 * @return new {@link IInt2D}
+	 * @throws ImageException
+	 */
+	public abstract IInt2D cutMargin(int _m) throws ImageException;
+
+	/**
+	 * Get image data as 2D integer array. Color data is stored as integer
+	 * (BufferdImage.TYPE_INT_RGB (null, R, G, B))
+	 * 
+	 * @return image data
+	 */
+	public int[][] getData();
+
+	/**
+	 * Copy image data and return as new {@link IInt2D}
+	 * @return deep copied {@link IInt2D}
+	 */
+	public IInt2D deepCopy();
+
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/ImageUtil.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/ImageUtil.java
index 9b31e92..1e44c88 100644
--- a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/ImageUtil.java
+++ b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/ImageUtil.java
@@ -16,7 +16,6 @@
 import java.io.PrintStream;
 import java.io.PrintWriter;
 
-import org.eclipse.actf.visualization.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.engines.lowvision.image.ImageException;
 
 public class ImageUtil {
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/Int2D.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/Int2D.java
index 7f6327b..3a71a22 100644
--- a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/Int2D.java
+++ b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/Int2D.java
@@ -16,7 +16,6 @@
 import java.awt.image.WritableRaster;
 
 import org.eclipse.actf.visualization.engines.lowvision.LowVisionIOException;
-import org.eclipse.actf.visualization.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.engines.lowvision.image.ImageException;
 import org.eclipse.actf.visualization.internal.engines.lowvision.io.BMPWriter;
 
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/PageImage.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/PageImage.java
index f77b54e..dfb900d 100644
--- a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/PageImage.java
+++ b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/PageImage.java
@@ -7,6 +7,7 @@
  *
  * Contributors:
  *    Junji MAEDA - initial API and implementation
+ *    Kentarou FUKUDA - initial API and implementation
  *******************************************************************************/
 package org.eclipse.actf.visualization.internal.engines.lowvision.image;
 
@@ -18,7 +19,6 @@
 import org.eclipse.actf.model.ui.ImagePositionInfo;
 import org.eclipse.actf.visualization.engines.lowvision.LowVisionIOException;
 import org.eclipse.actf.visualization.engines.lowvision.LowVisionType;
-import org.eclipse.actf.visualization.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.engines.lowvision.image.IPageImage;
 import org.eclipse.actf.visualization.engines.lowvision.image.ImageException;
 import org.eclipse.actf.visualization.eval.problem.IProblemItem;
@@ -51,10 +51,10 @@
 	private static boolean REMOVE_SCROLL_BAR_AT_BOTTOM = false;
 
 	// TODO relative value?
-	// the color which have only small portions in image is not handled as text candidate
+	// the color which have only small portions in image is not handled as text
+	// candidate
 	private static int THRESHOLD_MIN_OCCURRENCES = 300;
 
-	
 	// private static final boolean DO_CHAR_TEST = false;
 
 	public IInt2D pixel = null;
@@ -175,10 +175,6 @@
 		return (pixel);
 	}
 
-	public void disposeInt2D() {
-		pixel = new Int2D(0, 0);
-	}
-
 	public int getNumContainers() {
 		return (numContainers);
 	}
@@ -217,7 +213,7 @@
 		}
 	}
 
-	public boolean isInteriorImageArraySet() {
+	public boolean hasInteriorImageArraySet() {
 		if (interiorImageArray == null || interiorImageArray.length == 0) {
 			return (false);
 		} else {
@@ -1000,4 +996,13 @@
 		}
 		return (smVec);
 	}
+
+	public void writeToBMPFile(String name) throws LowVisionIOException {
+		pixel.writeToBMPFile(name);
+	}
+
+	public void writeToBMPFile(String name, int count)
+			throws LowVisionIOException {
+		pixel.writeToBMPFile(name, count);
+	}
 }
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/PageImageDebugUtil.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/PageImageDebugUtil.java
index 9621e26..faeac2b 100644
--- a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/PageImageDebugUtil.java
+++ b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/image/PageImageDebugUtil.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.actf.visualization.internal.engines.lowvision.image;
 
-import org.eclipse.actf.visualization.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.engines.lowvision.image.ImageException;
 import org.eclipse.actf.visualization.internal.engines.lowvision.DebugUtil;
 import org.eclipse.actf.visualization.internal.engines.lowvision.character.CharacterSS;
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/io/ImageReader.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/io/ImageReader.java
index 13c367e..f7ccb2e 100644
--- a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/io/ImageReader.java
+++ b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/io/ImageReader.java
@@ -13,9 +13,9 @@
 import java.awt.image.BufferedImage;
 
 import org.eclipse.actf.visualization.engines.lowvision.LowVisionIOException;
-import org.eclipse.actf.visualization.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.engines.lowvision.image.ImageException;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.BinaryImage;
+import org.eclipse.actf.visualization.internal.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.ImageUtil;
 
 public class ImageReader {
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/io/ImageReader14.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/io/ImageReader14.java
index d5a9e45..5269a19 100644
--- a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/io/ImageReader14.java
+++ b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/io/ImageReader14.java
@@ -17,9 +17,9 @@
 import javax.imageio.ImageIO;
 
 import org.eclipse.actf.visualization.engines.lowvision.LowVisionIOException;
-import org.eclipse.actf.visualization.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.engines.lowvision.image.ImageException;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.BinaryImage;
+import org.eclipse.actf.visualization.internal.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.ImageUtil;
 
 public class ImageReader14 {
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/operator/CVDOp.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/operator/CVDOp.java
index 9030057..11cbbc4 100644
--- a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/operator/CVDOp.java
+++ b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/operator/CVDOp.java
@@ -16,11 +16,11 @@
 import java.util.HashMap;
 
 import org.eclipse.actf.visualization.engines.lowvision.LowVisionException;
-import org.eclipse.actf.visualization.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.internal.engines.lowvision.color.ColorException;
 import org.eclipse.actf.visualization.internal.engines.lowvision.color.ColorIRGB;
 import org.eclipse.actf.visualization.internal.engines.lowvision.color.ColorSRGB;
 import org.eclipse.actf.visualization.internal.engines.lowvision.color.ColorYXY;
+import org.eclipse.actf.visualization.internal.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.Int2D;
 
 /*
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/operator/ColorFilterOp.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/operator/ColorFilterOp.java
index 3cae4f3..67a4a22 100644
--- a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/operator/ColorFilterOp.java
+++ b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/operator/ColorFilterOp.java
@@ -16,7 +16,7 @@
 import java.util.HashMap;
 
 import org.eclipse.actf.visualization.engines.lowvision.LowVisionException;
-import org.eclipse.actf.visualization.engines.lowvision.image.IInt2D;
+import org.eclipse.actf.visualization.internal.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.Int2D;
 
 /*
diff --git a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/problem/ImageColorProblem.java b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/problem/ImageColorProblem.java
index 0ec0c8a..d44accd 100644
--- a/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/problem/ImageColorProblem.java
+++ b/plugins/org.eclipse.actf.visualization.engines.lowvision/src/org/eclipse/actf/visualization/internal/engines/lowvision/problem/ImageColorProblem.java
@@ -12,10 +12,10 @@
 package org.eclipse.actf.visualization.internal.engines.lowvision.problem;
 
 import org.eclipse.actf.visualization.engines.lowvision.LowVisionType;
-import org.eclipse.actf.visualization.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.internal.engines.lowvision.Messages;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.BinaryImage;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.ConnectedComponent;
+import org.eclipse.actf.visualization.internal.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.Int2D;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.InteriorImage;
 import org.eclipse.actf.visualization.internal.engines.lowvision.image.InteriorImageComponent;
diff --git a/plugins/org.eclipse.actf.visualization.lowvision/src/org/eclipse/actf/visualization/lowvision/eval/CheckResultLowVision.java b/plugins/org.eclipse.actf.visualization.lowvision/src/org/eclipse/actf/visualization/lowvision/eval/CheckResultLowVision.java
index e397e65..5c2c5cd 100644
--- a/plugins/org.eclipse.actf.visualization.lowvision/src/org/eclipse/actf/visualization/lowvision/eval/CheckResultLowVision.java
+++ b/plugins/org.eclipse.actf.visualization.lowvision/src/org/eclipse/actf/visualization/lowvision/eval/CheckResultLowVision.java
@@ -37,7 +37,7 @@
             frameOffset[0] = 0;
 
             for (int i = 1; i < framePageImages.length; i++) {
-                frameOffset[i] = frameOffset[i - 1] + framePageImages[i - 1].getInt2D().getHeight();
+                frameOffset[i] = frameOffset[i - 1] + framePageImages[i - 1].getHeight();
             }
 
             for (Iterator<IProblemItem> i = getProblemList().iterator(); i.hasNext();) {
diff --git a/plugins/org.eclipse.actf.visualization.lowvision/src/org/eclipse/actf/visualization/lowvision/ui/internal/PartControlLowVision.java b/plugins/org.eclipse.actf.visualization.lowvision/src/org/eclipse/actf/visualization/lowvision/ui/internal/PartControlLowVision.java
index 7f9e4d6..84b402e 100644
--- a/plugins/org.eclipse.actf.visualization.lowvision/src/org/eclipse/actf/visualization/lowvision/ui/internal/PartControlLowVision.java
+++ b/plugins/org.eclipse.actf.visualization.lowvision/src/org/eclipse/actf/visualization/lowvision/ui/internal/PartControlLowVision.java
@@ -28,9 +28,9 @@
 import org.eclipse.actf.model.ui.editor.browser.IWebBrowserACTF;
 import org.eclipse.actf.model.ui.util.ModelServiceUtils;
 import org.eclipse.actf.visualization.IVisualizationConst;
-import org.eclipse.actf.visualization.engines.lowvision.TargetPage;
+import org.eclipse.actf.visualization.engines.lowvision.PageEvaluation;
 import org.eclipse.actf.visualization.engines.lowvision.image.IPageImage;
-import org.eclipse.actf.visualization.engines.lowvision.image.ImageDumpUtil;
+import org.eclipse.actf.visualization.engines.lowvision.image.PageImageFactory;
 import org.eclipse.actf.visualization.eval.problem.IProblemItem;
 import org.eclipse.actf.visualization.lowvision.LowVisionVizPlugin;
 import org.eclipse.actf.visualization.lowvision.eval.CheckResultLowVision;
@@ -109,7 +109,7 @@
 
 		String address;
 
-		TargetPage targetPage;
+		PageEvaluation targetPage;
 
 		private List<IProblemItem> lowvisionProblemList;
 
@@ -120,8 +120,7 @@
 
 		public void run() {
 			try {
-				targetPage = new TargetPage();
-				targetPage.setPageImage(framePageImage[frameId]);
+				targetPage = new PageEvaluation(framePageImage[frameId]);
 				targetPage
 						.setInteriorImagePosition(imageInfoInHtmlArray[frameId]);
 				targetPage.setCurrentStyles(styleInfoArray.get(frameId));
@@ -146,7 +145,7 @@
 						reportImageFile = LowVisionVizPlugin.createTempFile(
 								PREFIX_REPORT, SUFFIX_BMP);
 						targetPage
-								.makeAndStoreReport(reportFile.getParent(),
+								.generateReport(reportFile.getParent(),
 										reportFile.getName(), reportImageFile
 												.getName(),
 										lowvisionProblemList);
@@ -169,12 +168,6 @@
 			}
 		}
 
-		public void disposeTargetPage() {
-			if (targetPage != null) {
-				targetPage.disposePageImage();
-			}
-		}
-
 	}
 
 	// TODO use event
@@ -237,9 +230,6 @@
 					_shell.setCursor(null);
 					_isInSimulate = false;
 
-					for (ExtractCheckThread tmpT : checkThreads) {
-						tmpT.disposeTargetPage();
-					}
 					checkThreads = new Vector<ExtractCheckThread>();
 				}
 			});
@@ -335,9 +325,11 @@
 		frameUrl = new String[0];
 		int frameSize = 0;
 		if (webBrowser != null) {
-			if (lowVisionView.isWholepage()) {
-				frameUrl = LowVisionUtil.frameAnalyze(webBrowser);
-			}
+
+			// TODO frame support
+			// if (lowVisionView.isWholepage()) {
+			// frameUrl = LowVisionUtil.frameAnalyze(webBrowser);
+			// }
 
 			frameSize = frameUrl.length;
 			if (frameSize == 0) {
@@ -396,7 +388,7 @@
 
 			framePageImage[frameId] =
 			// partLeftWebBrowser.dumpWebBrowserImg(
-			ImageDumpUtil.createPageImage(dumpImageFile, _shell);
+			PageImageFactory.createPageImage(dumpImageFile);
 			// System.out.println("finish dump");
 
 			IWebBrowserACTF browser = null;
@@ -470,20 +462,7 @@
 	private void doSimulateAfterHalf() {
 		IPageImage pageImageWhole;
 		if (framePageImage.length > 1) {
-			File mergedImageFile;
-			try {
-				mergedImageFile = LowVisionVizPlugin.createTempFile(
-						PREFIX_MERGED_IMAGE, SUFFIX_BMP);
-				pageImageWhole = ImageDumpUtil.joinPageImages(mergedImageFile
-						.getAbsolutePath(), //$NON-NLS-1$
-						framePageImage);
-				if (mergedImageFile != null) {
-					mergedImageFile.delete();
-				}
-			} catch (Exception e) {
-				e.printStackTrace();
-				pageImageWhole = framePageImage[0];
-			}
+			pageImageWhole = PageImageFactory.joinPageImages(framePageImage);
 		} else {
 			pageImageWhole = framePageImage[0];
 		}
diff --git a/plugins/org.eclipse.actf.visualization.lowvision/src/org/eclipse/actf/visualization/lowvision/ui/preferences/LowVisionPreferencePage.java b/plugins/org.eclipse.actf.visualization.lowvision/src/org/eclipse/actf/visualization/lowvision/ui/preferences/LowVisionPreferencePage.java
index 20660bc..46500eb 100644
--- a/plugins/org.eclipse.actf.visualization.lowvision/src/org/eclipse/actf/visualization/lowvision/ui/preferences/LowVisionPreferencePage.java
+++ b/plugins/org.eclipse.actf.visualization.lowvision/src/org/eclipse/actf/visualization/lowvision/ui/preferences/LowVisionPreferencePage.java
@@ -14,9 +14,7 @@
 import java.io.File;
 
 import org.eclipse.actf.visualization.IVisualizationConst;
-import org.eclipse.actf.visualization.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.engines.lowvision.image.IPageImage;
-import org.eclipse.actf.visualization.engines.lowvision.image.Int2DFactory;
 import org.eclipse.actf.visualization.engines.lowvision.image.PageImageFactory;
 import org.eclipse.actf.visualization.lowvision.LowVisionVizPlugin;
 import org.eclipse.actf.visualization.lowvision.ui.internal.Messages;
@@ -163,24 +161,29 @@
 
 	private void initSampleImage() {
 
-		IInt2D int2D = null;
+		// IInt2D int2D = null;
 
 		Bundle lvBundle = LowVisionVizPlugin.getDefault().getBundle();
 
 		try {
-			int2D = Int2DFactory
-					.createInt2D(FileLocator.openStream(lvBundle, new Path(
+			// int2D = Int2DFactory
+			// .createInt2D(FileLocator.openStream(lvBundle, new Path(
+			// "vizResources/images/LowVisionSample.bmp"), false));
+			this._samplePageImage = PageImageFactory
+					.createPageImage(FileLocator.openStream(lvBundle, new Path(
 							"vizResources/images/LowVisionSample.bmp"), false));
 		} catch (Exception e) {
-			e.printStackTrace();
-		}
-
-		if (null != int2D) {
-			this._samplePageImage = PageImageFactory.createPageImage(int2D, false);
-		} else {
+			// e.printStackTrace();
 			this._samplePageImage = PageImageFactory.createPageImage();
 		}
 
+		// if (null != int2D) {
+		// this._samplePageImage = PageImageFactory.createPageImage(int2D,
+		// false);
+		// } else {
+		// this._samplePageImage = PageImageFactory.createPageImage();
+		// }
+
 		_sampleImageData = new ImageData[0];
 
 		try {
diff --git a/plugins/org.eclipse.actf.visualization.lowvision/src/org/eclipse/actf/visualization/lowvision/util/SimulateLowVision.java b/plugins/org.eclipse.actf.visualization.lowvision/src/org/eclipse/actf/visualization/lowvision/util/SimulateLowVision.java
index eea1f57..e3cef1c 100644
--- a/plugins/org.eclipse.actf.visualization.lowvision/src/org/eclipse/actf/visualization/lowvision/util/SimulateLowVision.java
+++ b/plugins/org.eclipse.actf.visualization.lowvision/src/org/eclipse/actf/visualization/lowvision/util/SimulateLowVision.java
@@ -12,11 +12,8 @@
 package org.eclipse.actf.visualization.lowvision.util;
 
 import org.eclipse.actf.visualization.engines.lowvision.LowVisionIOException;
-import org.eclipse.actf.visualization.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.engines.lowvision.image.IPageImage;
-import org.eclipse.actf.visualization.engines.lowvision.image.ImageDumpUtil;
 import org.eclipse.actf.visualization.engines.lowvision.image.ImageException;
-import org.eclipse.actf.visualization.engines.lowvision.image.Int2DFactory;
 import org.eclipse.actf.visualization.engines.lowvision.image.PageImageFactory;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.graphics.ImageData;
@@ -27,21 +24,17 @@
 
 	// separated from Lowvision part
 
-	public static synchronized IInt2D getSimulatedInt2D(IPageImage target,
-			ParamLowVision currentSetting) {
-
-		IInt2D result = Int2DFactory.createInt2D(0, 0);
+	private static synchronized IPageImage getSimulatedPageImage(
+			IPageImage target, ParamLowVision currentSetting) {
 
 		try {
-			IPageImage simulatedPageImage = PageImageFactory
-					.createSimulationPageImage(target, currentSetting
-							.getLowVisionType());
-			result = simulatedPageImage.getInt2D();
+			return PageImageFactory.createSimulationPageImage(target,
+					currentSetting.getLowVisionType());
 		} catch (ImageException ie) {
 			ie.printStackTrace();
 		}
 
-		return result;
+		return PageImageFactory.createPageImage();
 	}
 
 	public static synchronized ImageData[] doSimulate(IPageImage target,
@@ -51,12 +44,8 @@
 
 		// TODO use memory
 		try {
-			IInt2D int2d_sim = getSimulatedInt2D(target, currentSetting);
-			if (ImageDumpUtil.isLV16BIT()) {
-				int2d_sim.writeToBMPFile(fileName, 16);
-			} else {
-				int2d_sim.writeToBMPFile(fileName);
-			}
+			getSimulatedPageImage(target, currentSetting).writeToBMPFile(
+					fileName);
 			ImageLoader loaderAfterSimulate = new ImageLoader();
 			imageDataArray = loaderAfterSimulate.load(fileName);
 		} catch (LowVisionIOException lvioe) {
@@ -72,18 +61,8 @@
 		Image image = null;
 
 		try {
-			IPageImage simulatedPageImage = PageImageFactory.createSimulationPageImage(target, currentSetting
-					.getLowVisionType());
-			IInt2D int2d_sim = simulatedPageImage.getInt2D();
-
-			// TODO do not use file
-
-			if (ImageDumpUtil.isLV16BIT()) {
-				int2d_sim.writeToBMPFile(fileS, 16);
-			} else {
-				int2d_sim.writeToBMPFile(fileS);
-			}
-
+			PageImageFactory.createSimulationPageImage(target,
+					currentSetting.getLowVisionType()).writeToBMPFile(fileS);
 			image = new Image(display, fileS);
 
 		} catch (ImageException ie) {
@@ -95,17 +74,4 @@
 		return image;
 	}
 
-	public static IPageImage getPageImage(String fileName, boolean withoutFrame) {
-
-		IPageImage pageImage = null;
-
-		try {
-			IInt2D int2d = Int2DFactory.createInt2D(fileName);
-			pageImage = PageImageFactory.createPageImage(int2d, withoutFrame);
-		} catch (LowVisionIOException lvioe) {
-			lvioe.printStackTrace();
-		}
-
-		return pageImage;
-	}
 }
diff --git a/plugins/org.eclipse.actf.visualization.presentation/src/org/eclipse/actf/visualization/presentation/ui/internal/PartControlRoom.java b/plugins/org.eclipse.actf.visualization.presentation/src/org/eclipse/actf/visualization/presentation/ui/internal/PartControlRoom.java
index 3d58dae..9154aa7 100644
--- a/plugins/org.eclipse.actf.visualization.presentation/src/org/eclipse/actf/visualization/presentation/ui/internal/PartControlRoom.java
+++ b/plugins/org.eclipse.actf.visualization.presentation/src/org/eclipse/actf/visualization/presentation/ui/internal/PartControlRoom.java
@@ -20,7 +20,7 @@
 import org.eclipse.actf.model.ui.util.ModelServiceUtils;
 import org.eclipse.actf.visualization.IVisualizationConst;
 import org.eclipse.actf.visualization.engines.lowvision.image.IPageImage;
-import org.eclipse.actf.visualization.engines.lowvision.image.ImageDumpUtil;
+import org.eclipse.actf.visualization.engines.lowvision.image.PageImageFactory;
 import org.eclipse.actf.visualization.presentation.eval.CheckResultPresentation;
 import org.eclipse.actf.visualization.presentation.internal.RoomPlugin;
 import org.eclipse.actf.visualization.presentation.util.ParamRoom;
@@ -118,8 +118,7 @@
 					modelService);
 			imgCreator.getScreenImageAsBMP(dumpImageFile, false);
 
-			targetPageImage = ImageDumpUtil.createPageImage(dumpImageFile,
-					_shell);
+			targetPageImage = PageImageFactory.createPageImage(dumpImageFile);
 
 			if (targetPageImage != null) {
 
diff --git a/plugins/org.eclipse.actf.visualization.presentation/src/org/eclipse/actf/visualization/presentation/util/SimulateRoom.java b/plugins/org.eclipse.actf.visualization.presentation/src/org/eclipse/actf/visualization/presentation/util/SimulateRoom.java
index a8673c9..b947af6 100644
--- a/plugins/org.eclipse.actf.visualization.presentation/src/org/eclipse/actf/visualization/presentation/util/SimulateRoom.java
+++ b/plugins/org.eclipse.actf.visualization.presentation/src/org/eclipse/actf/visualization/presentation/util/SimulateRoom.java
@@ -11,11 +11,8 @@
 package org.eclipse.actf.visualization.presentation.util;
 
 import org.eclipse.actf.visualization.engines.lowvision.LowVisionIOException;
-import org.eclipse.actf.visualization.engines.lowvision.image.IInt2D;
 import org.eclipse.actf.visualization.engines.lowvision.image.IPageImage;
-import org.eclipse.actf.visualization.engines.lowvision.image.ImageDumpUtil;
 import org.eclipse.actf.visualization.engines.lowvision.image.ImageException;
-import org.eclipse.actf.visualization.engines.lowvision.image.Int2DFactory;
 import org.eclipse.actf.visualization.engines.lowvision.image.PageImageFactory;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.graphics.ImageData;
@@ -24,21 +21,17 @@
 
 public class SimulateRoom {
 
-	public static synchronized IInt2D getSimulatedInt2D(IPageImage target,
-			ParamRoom currentSetting) {
-
-		IInt2D result = Int2DFactory.createInt2D(0, 0);
+	private static synchronized IPageImage getSimulatedPageImage(
+			IPageImage target, ParamRoom currentSetting) {
 
 		try {
-			IPageImage simulatedPageImage = PageImageFactory
-					.createSimulationPageImage(target, currentSetting
-							.getLowVisionType());
-			result = simulatedPageImage.getInt2D();
+			return PageImageFactory.createSimulationPageImage(target,
+					currentSetting.getLowVisionType());
 		} catch (ImageException ie) {
-			ie.printStackTrace();
+			// ie.printStackTrace();
 		}
 
-		return result;
+		return PageImageFactory.createPageImage();
 	}
 
 	public static synchronized ImageData[] doSimulate(IPageImage target,
@@ -48,12 +41,8 @@
 
 		// TODO use memory
 		try {
-			IInt2D int2d_sim = getSimulatedInt2D(target, currentSetting);
-			if (ImageDumpUtil.isLV16BIT()) {
-				int2d_sim.writeToBMPFile(fileName, 16);
-			} else {
-				int2d_sim.writeToBMPFile(fileName);
-			}
+			getSimulatedPageImage(target, currentSetting).writeToBMPFile(
+					fileName);
 			ImageLoader loaderAfterSimulate = new ImageLoader();
 			imageDataArray = loaderAfterSimulate.load(fileName);
 		} catch (LowVisionIOException lvioe) {
@@ -72,16 +61,9 @@
 			IPageImage simulatedPageImage = PageImageFactory
 					.createSimulationPageImage(target, currentSetting
 							.getLowVisionType());
-			IInt2D int2d_sim = simulatedPageImage.getInt2D();
-
-			// TODO use memory
-
-			if (ImageDumpUtil.isLV16BIT()) {
-				int2d_sim.writeToBMPFile(fileS, 16);
-			} else {
-				int2d_sim.writeToBMPFile(fileS);
-			}
-
+			simulatedPageImage.writeToBMPFile(fileS);
+			// IInt2D int2d_sim = simulatedPageImage.getInt2D();
+			// int2d_sim.writeToBMPFile(fileS);
 			image = new Image(display, fileS);
 
 		} catch (ImageException ie) {
@@ -93,17 +75,4 @@
 		return image;
 	}
 
-	public static IPageImage getPageImage(String fileName, boolean withoutFrame) {
-
-		IPageImage pageImage = null;
-
-		try {
-			IInt2D int2d = Int2DFactory.createInt2D(fileName);
-			pageImage = PageImageFactory.createPageImage(int2d, withoutFrame);
-		} catch (LowVisionIOException lvioe) {
-			lvioe.printStackTrace();
-		}
-
-		return pageImage;
-	}
 }