trying to abstract out the program balanceable