adding typescript support