Added typescript support