add some client functions