changed a ton of stuff for cleaner implementaions of things