Using streams in group singleton algorithms
Added a strategy based group implementation