refactored a bunch of things. so much more to do.