support different types of results