add observableset, make stuff more consistent