Use OpenStruct to parse options. Add logging. Update devices to use options.