small cleanup
handle no-result cases differently

Answers does not return a schema if there is no data to return.
remove some duplication