separated Device class, added Observer class, added init constructors, renamed property references in SOD class