   console.log 'initializing plugins'
   plugins = createPlugins game, {require: require}
 
-  plugins.preload 'registry', {registerDefaults: (registry) ->
+  plugins.preload 'voxel-registry', {registerDefaults: (registry) ->
     registry.registerBlock 'grass', {texture: ['grass_top', 'dirt', 'grass_side'], hardness:5}
     registry.registerBlock 'dirt', {texture: 'dirt', hardness:4}
     registry.registerBlock 'stone', {texture: 'stone', hardness:90}

  }

  # right-click to place block (etc.)
  plugins.preload 'use', {}

  # handles 'break' event from voxel-mine (left-click hold breaks blocks), collects block and adds to inventory
  plugins.preload 'harvest', {
    playerInventory:playerInventory,
    block2ItemPile: (blockName) ->
      # TODO: use registry? more data-driven

  #playerInventory.give new ItemPile('plankOak', 10)
  #playerInventory.give new ItemPile('logBirch', 5)
  #playerInventory.give new ItemPile('workbench', 1)
  plugins.preload 'voxel-inventory-hotbar', {inventory:playerInventory, inventorySize:10}

  plugins.preload 'voxel-inventory-dialog', {playerInventory:playerInventory}

  REACH_DISTANCE = 8
  plugins.preload 'voxel-reach', { reachDistance: REACH_DISTANCE }
  # left-click hold to mine
  plugins.preload 'voxel-mine', {
    timeToMine: (target) =>
      # the innate difficulty of mining this block
      blockID = game.getBlock(target.voxel)
      blockName = plugins.get('voxel-registry')?.getBlockName(blockID)
      hardness = plugins.get('voxel-registry')?.getBlockProps(blockName)?.hardness
      hardness ?= 9

      # effectiveness of currently held tool, shortens mining time
      heldItem = plugins.get('voxel-inventory-hotbar')?.held()
      speed = 1.0
      speed = plugins.get('voxel-registry')?.getItemProps(heldItem?.item)?.speed ? 1.0
      finalTimeToMine = Math.max(hardness / speed, 0)
      # TODO: more complex mining 'classes', e.g. shovel against dirt, axe against wood

