messenger is now more powerful, allowing you to pass a context and returning the function with the apply method instead of an array; refactoring the other files to keep up with this change