Added idea for virtual sub classes