modifications and new recv function