pass autoptrs up by reference, avoid accidentally resetting lists