A very neat implementation, but I'd point out there's no need to wrap the tuples in parentheses