added progressive rendering, loading spinner