Much more TypeScript goodness