add tests and vagrant support