port to spire branch in anticipation of merge
merge of spire branch