make vendor independent