implement smart_split