Switch up source api for more flexibility.
If sync is not called by source, invoke with empty array.
Clear hint if no top suggestion.
Allow root node of dataset to be set.
Clean up naming.