Filled out most of Session.receive