copyright (C) 2008-09 Kazunori Ohnaka. All rights reserved. @