semi-automatic writing