~ working on protocol