fix a slew of very complicated bugs with @transferred