refactored to pass args object into methods

contains a property bag and index