better work with socket