don't let depth get too deep