some changes, can't remember diff since last commit, but probably just renaming DOM to Dom, using Dom as a monad, and added some reasonable-ish selectors... still far from ideal