Free. This is way out of order... I should fix it but i'm to lazy. the code is soooo big. Why? this was hard...