create buttons service. rejig everythign to use it. add tests for tricky browser things. general progress...