improve the calc module