Introduce typescript support