diff --git a/services/eclipse-marketplace/eclipse-marketplace-downloads.service.js b/services/eclipse-marketplace/eclipse-marketplace-downloads.service.js
index abd347f20c9f09869c807545e507171880e557af..44dab4edce52f07b11f3dcbc4d255d74c97a2c20 100644
--- a/services/eclipse-marketplace/eclipse-marketplace-downloads.service.js
+++ b/services/eclipse-marketplace/eclipse-marketplace-downloads.service.js
@@ -38,27 +38,16 @@ function DownloadsForInterval(interval) {
   }[interval]
 
   return class EclipseMarketplaceDownloads extends EclipseMarketplaceBase {
-    static get name() {
-      return name
-    }
-
-    static get category() {
-      return 'downloads'
-    }
-
-    static get route() {
-      return this.buildRoute(base)
-    }
-
-    static get examples() {
-      return [
-        {
-          title: 'Eclipse Marketplace',
-          namedParams: { name: 'notepad4e' },
-          staticPreview: this.render({ downloads: 30000 }),
-        },
-      ]
-    }
+    static name = name
+    static category = 'downloads'
+    static route = this.buildRoute(base)
+    static examples = [
+      {
+        title: 'Eclipse Marketplace',
+        namedParams: { name: 'notepad4e' },
+        staticPreview: this.render({ downloads: 30000 }),
+      },
+    ]
 
     static render({ downloads }) {
       return {
diff --git a/services/eclipse-marketplace/eclipse-marketplace-favorites.service.js b/services/eclipse-marketplace/eclipse-marketplace-favorites.service.js
index 7406cf51fb637438c3319820141340f131097025..50643104ac28f717f7ca07024d77b8a1395bc452 100644
--- a/services/eclipse-marketplace/eclipse-marketplace-favorites.service.js
+++ b/services/eclipse-marketplace/eclipse-marketplace-favorites.service.js
@@ -13,27 +13,17 @@ const favoritesResponseSchema = Joi.object({
 }).required()
 
 module.exports = class EclipseMarketplaceFavorites extends EclipseMarketplaceBase {
-  static get category() {
-    return 'other'
-  }
-
-  static get route() {
-    return this.buildRoute('eclipse-marketplace/favorites')
-  }
-
-  static get examples() {
-    return [
-      {
-        title: 'Eclipse Marketplace',
-        namedParams: { name: 'notepad4e' },
-        staticPreview: this.render({ favorited: 55 }),
-      },
-    ]
-  }
-
-  static get defaultBadgeData() {
-    return { label: 'favorites' }
-  }
+  static category = 'other'
+  static route = this.buildRoute('eclipse-marketplace/favorites')
+  static examples = [
+    {
+      title: 'Eclipse Marketplace',
+      namedParams: { name: 'notepad4e' },
+      staticPreview: this.render({ favorited: 55 }),
+    },
+  ]
+
+  static defaultBadgeData = { label: 'favorites' }
 
   static render({ favorited }) {
     return {
diff --git a/services/eclipse-marketplace/eclipse-marketplace-license.service.js b/services/eclipse-marketplace/eclipse-marketplace-license.service.js
index 7d38698746e304dd1e8ed804118ce1209294c602..0dd25fa0d6552dc38505f78e2142362e43c2ccca 100644
--- a/services/eclipse-marketplace/eclipse-marketplace-license.service.js
+++ b/services/eclipse-marketplace/eclipse-marketplace-license.service.js
@@ -12,27 +12,17 @@ const licenseResponseSchema = Joi.object({
 }).required()
 
 module.exports = class EclipseMarketplaceLicense extends EclipseMarketplaceBase {
-  static get category() {
-    return 'license'
-  }
-
-  static get route() {
-    return this.buildRoute('eclipse-marketplace/l')
-  }
-
-  static get examples() {
-    return [
-      {
-        title: 'Eclipse Marketplace',
-        namedParams: { name: 'notepad4e' },
-        staticPreview: this.render({ license: 'GPL' }),
-      },
-    ]
-  }
-
-  static get defaultBadgeData() {
-    return { label: 'license' }
-  }
+  static category = 'license'
+  static route = this.buildRoute('eclipse-marketplace/l')
+  static examples = [
+    {
+      title: 'Eclipse Marketplace',
+      namedParams: { name: 'notepad4e' },
+      staticPreview: this.render({ license: 'GPL' }),
+    },
+  ]
+
+  static defaultBadgeData = { label: 'license' }
 
   static render({ license }) {
     if (license === '') {
diff --git a/services/eclipse-marketplace/eclipse-marketplace-update.service.js b/services/eclipse-marketplace/eclipse-marketplace-update.service.js
index 2fa6e325539e81d3080b63be656a6b234179f74b..ca32c4ae734396d0dddc7225ee58d36711707c30 100644
--- a/services/eclipse-marketplace/eclipse-marketplace-update.service.js
+++ b/services/eclipse-marketplace/eclipse-marketplace-update.service.js
@@ -15,27 +15,17 @@ const updateResponseSchema = Joi.object({
 }).required()
 
 module.exports = class EclipseMarketplaceUpdate extends EclipseMarketplaceBase {
-  static get category() {
-    return 'activity'
-  }
-
-  static get route() {
-    return this.buildRoute('eclipse-marketplace/last-update')
-  }
-
-  static get examples() {
-    return [
-      {
-        title: 'Eclipse Marketplace',
-        namedParams: { name: 'notepad4e' },
-        staticPreview: this.render({ date: new Date().getTime() }),
-      },
-    ]
-  }
-
-  static get defaultBadgeData() {
-    return { label: 'updated' }
-  }
+  static category = 'activity'
+  static route = this.buildRoute('eclipse-marketplace/last-update')
+  static examples = [
+    {
+      title: 'Eclipse Marketplace',
+      namedParams: { name: 'notepad4e' },
+      staticPreview: this.render({ date: new Date().getTime() }),
+    },
+  ]
+
+  static defaultBadgeData = { label: 'updated' }
 
   static render({ date }) {
     return {
diff --git a/services/eclipse-marketplace/eclipse-marketplace-version.service.js b/services/eclipse-marketplace/eclipse-marketplace-version.service.js
index 5d35707b6dfc1576c9e070b424c90a56bffa57d9..12081dfe6faf4f3192794d2944668bd0a2a4f8b2 100644
--- a/services/eclipse-marketplace/eclipse-marketplace-version.service.js
+++ b/services/eclipse-marketplace/eclipse-marketplace-version.service.js
@@ -13,27 +13,17 @@ const versionResponseSchema = Joi.object({
 }).required()
 
 module.exports = class EclipseMarketplaceVersion extends EclipseMarketplaceBase {
-  static get category() {
-    return 'version'
-  }
-
-  static get route() {
-    return this.buildRoute('eclipse-marketplace/v')
-  }
-
-  static get examples() {
-    return [
-      {
-        title: 'Eclipse Marketplace',
-        namedParams: { name: 'notepad4e' },
-        staticPreview: this.render({ version: '1.0.1' }),
-      },
-    ]
-  }
-
-  static get defaultBadgeData() {
-    return { label: 'eclipse marketplace' }
-  }
+  static category = 'version'
+  static route = this.buildRoute('eclipse-marketplace/v')
+  static examples = [
+    {
+      title: 'Eclipse Marketplace',
+      namedParams: { name: 'notepad4e' },
+      staticPreview: this.render({ version: '1.0.1' }),
+    },
+  ]
+
+  static defaultBadgeData = { label: 'eclipse marketplace' }
 
   static render({ version }) {
     return renderVersionBadge({ version })
diff --git a/services/ecologi/ecologi-carbon.service.js b/services/ecologi/ecologi-carbon.service.js
index 141d45ff90909d3715cb3ddc3e13ca43d0034938..d35e52f1efd2b87e32d92f5035e8493dcac61fa5 100644
--- a/services/ecologi/ecologi-carbon.service.js
+++ b/services/ecologi/ecologi-carbon.service.js
@@ -10,30 +10,17 @@ const apiSchema = Joi.object({
 }).required()
 
 module.exports = class EcologiCarbonOffset extends BaseJsonService {
-  static get category() {
-    return 'other'
-  }
-
-  static get route() {
-    return {
-      base: 'ecologi/carbon',
-      pattern: ':username',
-    }
-  }
-
-  static get examples() {
-    return [
-      {
-        title: 'Ecologi (Carbon Offset)',
-        namedParams: { username: 'ecologi' },
-        staticPreview: this.render({ count: 15.05 }),
-      },
-    ]
-  }
-
-  static get defaultBadgeData() {
-    return { label: 'carbon offset' }
-  }
+  static category = 'other'
+  static route = { base: 'ecologi/carbon', pattern: ':username' }
+  static examples = [
+    {
+      title: 'Ecologi (Carbon Offset)',
+      namedParams: { username: 'ecologi' },
+      staticPreview: this.render({ count: 15.05 }),
+    },
+  ]
+
+  static defaultBadgeData = { label: 'carbon offset' }
 
   static render({ count }) {
     const tonnes = metric(count)
diff --git a/services/ecologi/ecologi-trees.service.js b/services/ecologi/ecologi-trees.service.js
index 2b361844c8369ef6b157819bac7132abdd75fb50..e707d5d9bf02cc751b03e7fe9a50bc526b161fc0 100644
--- a/services/ecologi/ecologi-trees.service.js
+++ b/services/ecologi/ecologi-trees.service.js
@@ -11,30 +11,17 @@ const apiSchema = Joi.object({
 }).required()
 
 module.exports = class EcologiTrees extends BaseJsonService {
-  static get category() {
-    return 'other'
-  }
-
-  static get route() {
-    return {
-      base: 'ecologi/trees',
-      pattern: ':username',
-    }
-  }
-
-  static get examples() {
-    return [
-      {
-        title: 'Ecologi (Trees)',
-        namedParams: { username: 'ecologi' },
-        staticPreview: this.render({ count: 250 }),
-      },
-    ]
-  }
-
-  static get defaultBadgeData() {
-    return { label: 'trees' }
-  }
+  static category = 'other'
+  static route = { base: 'ecologi/trees', pattern: ':username' }
+  static examples = [
+    {
+      title: 'Ecologi (Trees)',
+      namedParams: { username: 'ecologi' },
+      staticPreview: this.render({ count: 250 }),
+    },
+  ]
+
+  static defaultBadgeData = { label: 'trees' }
 
   static render({ count }) {
     return { message: metric(count), color: floorCount(count, 10, 50, 100) }
diff --git a/services/elm-package/elm-package.service.js b/services/elm-package/elm-package.service.js
index 63918121a8d665fe7377921e7517ca90e77da2d3..3dad7d3853e5129b9d186f43aa425f22a1d0fd12 100644
--- a/services/elm-package/elm-package.service.js
+++ b/services/elm-package/elm-package.service.js
@@ -8,32 +8,17 @@ const { BaseJsonService } = require('..')
 const schema = Joi.object({ version: semver }).required()
 
 module.exports = class ElmPackage extends BaseJsonService {
-  static get category() {
-    return 'version'
-  }
-
-  static get route() {
-    return {
-      base: 'elm-package/v',
-      pattern: ':user/:packageName',
-    }
-  }
-
-  static get examples() {
-    return [
-      {
-        title: 'Elm package',
-        namedParams: { user: 'elm', packageName: 'core' },
-        staticPreview: this.render({ version: '1.0.2' }),
-      },
-    ]
-  }
-
-  static get defaultBadgeData() {
-    return {
-      label: 'elm package',
-    }
-  }
+  static category = 'version'
+  static route = { base: 'elm-package/v', pattern: ':user/:packageName' }
+  static examples = [
+    {
+      title: 'Elm package',
+      namedParams: { user: 'elm', packageName: 'core' },
+      staticPreview: this.render({ version: '1.0.2' }),
+    },
+  ]
+
+  static defaultBadgeData = { label: 'elm package' }
 
   static render(props) {
     return renderVersionBadge(props)
diff --git a/services/endpoint/endpoint.service.js b/services/endpoint/endpoint.service.js
index 77afe2d673a200f13d94c2b8732f8be1803e55b0..a6eaf0dbfd5754b13a46354a2fe398ee56ccd30f 100644
--- a/services/endpoint/endpoint.service.js
+++ b/services/endpoint/endpoint.service.js
@@ -14,27 +14,15 @@ const queryParamSchema = Joi.object({
 }).required()
 
 module.exports = class Endpoint extends BaseJsonService {
-  static get category() {
-    return 'dynamic'
+  static category = 'dynamic'
+  static route = {
+    base: 'endpoint',
+    pattern: '',
+    queryParamSchema,
   }
 
-  static get route() {
-    return {
-      base: 'endpoint',
-      pattern: '',
-      queryParamSchema,
-    }
-  }
-
-  static get _cacheLength() {
-    return 300
-  }
-
-  static get defaultBadgeData() {
-    return {
-      label: 'custom badge',
-    }
-  }
+  static _cacheLength = 300
+  static defaultBadgeData = { label: 'custom badge' }
 
   static render({
     isError,