better typescript support