Code consistency
Fixes duplicate players bug
Prevents playerChanges event from firing if no new players are added
Adds tests for services