no strict 'refs'; no warnings 'redefine';