adding protocol and domain methods