satisfy requirements : add calc class, use singleton