Merge in upstream changes from square/dagger