moved transaction holder out into public class