ported to ruby, added vagrant and docker