copyright (c) 2008 Koko Kakizaki.