make sure we time out if it takes too long