calc constructor