# host/init_ao.js

    'use strict'

    const initAOState = require('./init_ao_state')
    const genHelpers = require('./gen_helpers')

    /**
     * Creates a new algo order instance from the provided definition object &
     * arguments.
     *
     * @param {object} AOAdapter
     * @param {object} aoDef - algo order definition
     * @param {object} args - instance arguments
     * @returns {object} instance
     */
    module.exports = (adapter, aoDef = {}, args = {}) => {
      const state = initAOState(aoDef, args)
      const h = genHelpers(state, adapter)

      return { state, h }
    }