the challenge is the challenge ;-) why not pass the `server` object as third parameter instead of first. Then we only use it in mechanisms that really require it. With this we could eliminate the server object at least in most mechanism. Does that make sense?