Thank you! And yes it is very similar to using an event listener especially if you are creating a custom event listener. As for the unsubscribe, one implementation would be to update our subscribe method to return an unsubscribe function that essentially finds the index of the callback function and removes it from our bus[event] array. Since we are using array.push when adding our function we could utilize that to get our index since it returns the index of what was added!