finishes most logic - need to figure out rounding