# refactor core
  * move state from memory to disk, sqlite probably
  * allows us to retain stats etc over restart
  * simplifies code
  * keep only running nodes in memory
  * negligible I/O cost, as majority is I/O wait getting config

# separate login to owon package
  * oxidized-script is not only use-case
  * it would be good to have minimal package used to login to routers
  * oxidized just one consumer of that functionality
  * what to do with models, we need model to know how to login. Should models be separated to another package? oxidized-core, oxidized-models and oxidized-login?
  * how can we allow interactive login in oxidized-login? With functional VTY etc? REPL loop in input/ssh and input/telnet?

# thread number
  * think about algo
  * if job ended later than now-iteration have rand(node.size) == 0 to add thread
  * if now is less than job_ended+iteration same chance to remove thread?
  * should we try to avoid max threads from being hit? (like maybe non-success thread is pulling average?)

# docs, testing
  * yard docs
  * minitest tests