working version on virtual machine