adding protocol prototype