qml properties instead of signals