use destructuring for argument defaults