Refactoring symbol arguments into unified object
Refactoring methods to not access private variables,
instead introducing an args object that holds all of the
information for the symbol