new ver with inheritance