another attempt at returning multiple values from defer