protocol independent script