I sort of took this from Aaron's code above, thats why.