without memcopy