implement the model so plugins can read/write data