decoding direct and virtual methods