Receiving is almost done, still need to do timeouts
Merged neeraj's again