UNSTABLE: need to figure out what to do with destinations, pointers, and maps to finish debugging.