df2: lots changes