getting rid of MooseX::Declare as a heavy dependency