updated with unicode support and latest data