fixed custom protocol