get components using `if let`
Don't return references
Correct destruction behaviour