fix some bugs add some more