vili: internal use only