add reflection function