figuring out and defining what methods to implement and what protocol methods to setup