manual merge of #23