(5) НеПравильнаяСсылка - это ссылка на некий объект, да? И везде где она есть ее надо заменить на другую (правильную), да? тогда (4) и не стоит изобретать велосипед, на мой взгляд
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший