avoid ruby dependency