implement balance; work in progress