I know I should be beaten with a stick for this but I will just commit everything now in one patch