adding balance calculation, and etc.