add helper function for progressive