Thinkers now return booleans and emit done() is done for them