basic server framework