rewrote snore backend with qml