Changing Transaction model to an abstract class