Decouple Block and Transaction from the core layer of the program.