Fix copying and polymorphic function calls. Turns out I was smarter than I thought when I originally wrote this!