take by reference rather than move/copy