client interface initial implementation