for now only allow dictionaries as input