rewrote based on D2L Extracts