examples of virtual methods