deepening my understanding of weak/strong references and alloc/dealloc of objects