better use of Sub::Name