probe refactor

Let's try this again. no more conflicts.