more angular porting