introduce general group structure