assignment operator now uses memcpy instead of just copying the pointer (d'oh)