Take shared_ptr by const-reference to avoid updating its refcount

Signed-off-by: K-ballo <k@fusionfenix.com>
Decay related refactors

Signed-off-by: K-ballo <k@fusionfenix.com>