Refactor everything to have saner paritioning of data