pass args via context object to hooks so it can be mutated by reference