TypeScript ready