full worked reflection method