Copyright (C) Nobuhiko Shinohara all rights reserved