completed simple client