divide strategies
divide impl