refactored stuff
massive happy refactor