extract liveedit protocol to module