I think it's clearer to only call activate on the relevant contexts rather than passing unrelated stuff to all contexts and having each of them deal with invalid inputs. That way, handleActivation() only needs a bool as the return code.