Here be dragons, lots of code moved to where it probably should be.. i'm silly.