Separate client and server views for availability

Continuing the cleanup of client and server code...

This will get added to as I work through the modules one at a time, but merge it whenever and I'll raise new PRs.