There's a bug here, started is true before playService is non-None.
Also, there's a bug in `def apply` where it will overwrite the current playServer without stopping it.