added calendar class plus tests