implemented most functions and data structures within the DataManager, need to make it update the CoreListeners when data changes