initial implementation of client