   ([type]
    (create-board type {}))
   ([type config]
-   (Board. (atom {}) (impl/instantiate type config))))
+   (p/init! 
+     (sw/->BoardWrapper (atom {}) (impl/instantiate type config)))))
 
 ;; What follows then are a suite of simple tools for dealing with the boards.
-
-(defn get-config
-  "Get board configuration."
-  [board]
-  (p/get-config board))
-
-(defn update-config
-  "Reset board configuration."
-  [board f & args]
-  (p/update-config board (fn [current-conf] (apply f current-conf args))))
-
 
 (defmulti pin-modes
   "Returns a map of pin numbers to possible modes for the entire board, or the available modes of a specific pin.


;; Nothing to see here...

;(defn- board?
  ;[obj]
  ;(satisfies? p/PBoard obj))
(defn- board?
  [obj]
  (= (type obj) Board))

(defn- board-dispatch
  [x & args] (board? x))

  "# Public API for pin-ctrl"
  (:require [clj-bots.pin-ctrl
             [protocols :as p]
             [implementation :as impl]
             [state-wrapper :as sw]]
            [clojure.core.async :as async :refer [>!! <!! >! <! go go-loop chan]]))


