improve progress code