PORTING : s-curve