now with socket reuse