work well for persistent connections

but the connction state leaves for end programmer to handle