dumb client interface