Made render virtual instead of abstract