Rewrite tests
Fix bug where using the function returned from pick() would return `self` on all subsequent calls