all working, needs dox