clean code and add transactions