Separated client/server/routing code