Add support for multiple groups
Remove need for repeating labels
Use iterative loop