Changed the majority of use_source/destination methods to be with_source/destination to reduce the number of side effects.