changed thinker interface a bit