refactored args as object, so we have a single shared reference