added test reference counted smart pointer