Added recursive VM implementation