finish porting execute