add new vm function