adding typescript to avoid dirty tree issue