Created by: natefaubion
In my usage, I've found recursive invoke to be undesirable as a default as it can lead to some surprising behavior and errors. @jlongster has also echoed this.
This PR changes invoke to work non-recursively, while providing invokeRec as a recursive alternative.