first prototype for virtualizing methods