OK this is going to be a bit epic.....