added JavaScript fallback