new GRNotFound exception, adopt unit-tests
introduce campaigns.by_name and campaigns.by_id