semi automatic writing