update from vector branch