This needs to be synced with community and QGC