hopefully divide semi-works