is working pretty well, need some view functionality and a little more testing