separate protocol scripts