Use properties instead of abstract methods