fucked up most of the settings, but hopefully its better with more code