renamed & refactored a ton of stuff