1. implement gen_server behavior, which is going to be base of our parts
used by XDCR