[Issue #33] Using NSHashTable to better handle weakification of delegates