fixed a few mistakes, still rearranging