remove dependency on DOM