method interception is functional