some large scale changes to how allocation works