splitting off test server component to use elsewhere