pick is sync
validator and preconditions functions from Fogus