Shouldn't the build_response call be done by PushProfileAnswer's constructor?  It would make much more sense that if you pass a Diameter::Message into the constructor along with other parameters then the Diameter::Message is the request for which you want to build the answer.