DRY up private method calc_keep_distributions