removed virtual keyword (using override as semantic)