Client porting typescript