my Protocol-Interface framework implementation