update api to accept complex data types, and the data retrieval and data...