some pretty big refactoring done and to do
I'm just committing right now
another random commit