complete calculator abstract class