Updated to use Shepherd w/ exceptions.