Refactoring, broken, but I'm getting there.
Code looks cleaner and will be better when finished.