Time zone object base class and factory