start porting to typescript