refactored group creation

I refactored the group creation. This reduces controller complexity & responsibility. It also starts to introduce a better design to help increase readability, improve maintainability and ease testing pain. Let me know if you like this kind of refactoring!