general improvements, still some bugs floating around