REFACTOR: switch to loading data from input streams when done() instead of as they are defined