Migration round 4: Porting http-core