Also, why do you pass in the reference_frame and point when you already have them stored on the object.

self.reference_frame and self.origin