add new implementation example of vitual pattern