pass public protocol everywhere