Lots of changes. Actually works now. Yay!