[fix] do safe parse as source could be anything