initial copyfrom implementation

Works for small objects only, at teh moment, because we accumulate it all in memory.