outsourced functions