the ensure method now uses and returns a qvariant. interfaces have been adapted