added group selection feature
fixed incorrect naming and added extra test
changed matcher to match
[minor] comments and variable renames
assign prototype using object literal for readability
[minor] comments