semi-mechanical