Updated with PNG fallback option