added in some smart dp