(5) глянул в нашу конфу, у нас реализовано через внешнюю компоненту, стандартным способом, как упомянули в (3) только с 8.2.15
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший