migration to Typescript