refactored everything, tidy up, added some config in Vagrantfile