course pair functions impl