moved to using smart pointers since object ownership isn't well defined.
added request responses with tests