slightly more efficient tuple decoding