refactor: data loader