the first porting version