Very very big commit please do not be scared - Moving this to github