combined client and server only stuff