added recursive assignment grabbing