using Devel::Declare::Magic directly as per deprecation from Devel::Declare