Implementing the execute-around-method pattern