Code is crap don't look at it