take out a more common functionality into the base class
refactor groupstage implementation to inherit from Base