To-do Add more checks; throw exceptions where necessary. Better way to store devices. A CLI tool. Add examples and tests.