Забытая проверка.
Дополнительная проверка на generics.
Немного перепилены тесты. Тесты для безопасного режима.