add many groups
add groups
small changes and some refactoring
adds an array