adds first pass extend utility function