porting to angular