adding recursive data retrieval.