Don't share results object
Simpler type tests
Reduce boilerplate