Pretty close to the right shop implementation...