semi (version from chise.org)