Be a bit careful there, when a struct is moved around its destructor will be called. This is why I suggested you to use the GC to allocate memory or else ouch.So you'll find very quickly that you will be having segfaults since you will be doing use after free.
Iep, the full code have the postblit operator to correct this :)