Refactored publish, subscribe, and unsubscribe functions.
Refactored tests to match.
Added a test for multiple pulblish args.