add calculator and tests