add budget logic