SORRY FOR THE MESS BELOW !