   config:
     blacklist: []
     timeout: 2000
+    projectRoot: undefined
 
   # a place to record what responders we have attached
   responders: {}
 
   init: (config, modules) ->
+    core.projectRoot = util.findProjRoot()
 
     requireModule = (moduleName) ->
-      require "#{process.cwd()}/node_modules/axiom-#{moduleName}"
+      # Get a project directory-relative path for the axiom module's
+      # corresponding NPM module.
+      npmName = "axiom-#{moduleName}"
+      npmModuleName = util.projRel path.join('node_modules', npmName)
+      require npmModuleName
 
     core.reset()
     modules or= []

  # for sending interrupts
  signal: (channel, data) ->


module.exports = core

_ = require 'lodash'

bus = require './bus'
util = require './util'

getAxiomModules = (config) ->
  config or= {}
