addref and return result