implementing VM as discuess