The big refactoring is almost done. For now I'm fixing compile time errors. There's some work to invest.
Procedural solving was moved to an object called AgsRecyclingContainer.
It superseeded AgsGroupId and simplifies the API.
During refactoring some utility functions has been deleted because there is no more need for them.
This makes the code easier to maintain.
Overall I'm suggesting the changes.