Changing Server to be an interface here instead of a struct. This was invasive but - hey, thank goodness for static typing.