migrated to typescript
converted to c#...