+#pragma once
+
 // includes: cuda-api-wrappers
-#include <cuda/api/memory.hpp>
+#include <cuda/api_wrappers.hpp>
 
 namespace gunrock {
 namespace datastruct {

     */

    // synchronous copy
    copy(pointer_t source, pointer_t destination, size_t bytes)
    {
      // cuda-api-wrappers goes to-from, size.
      cuda::memory::copy(destination, source, bytes);


    // asynchronous copy
    template<typename stream_t>
    void copy(pointer_t source,
              pointer_t destination,
              size_t bytes,
              stream_t stream) noexcept
    {
      // cuda-api-wrappers goes to-from, size.
      cuda::memory::async::copy(destination, source, bytes, stream);
    }

    void copy(array_t& source) noexcept
    {
      // copy over array_t contents to destination array_t
      this->size = source->size;
      this->allocated = source->allocated;
      copy(source->h_pointer, this->h_pointer, this->size * sizeof(type_t));
      copy(source->d_pointer, this->d_pointer, this->size * sizeof(type_t));
    }

    // should move issue a free?
