provide a custom copy implementation
provide a custom map implementation
provide a custom unmap implementation
provide a custom copy implementation