Copyright (C) 2008 by Dmitry Ovsyanko