custom tuple functions