added List.split and countBy methods