mostly working... still lots to do