@adbatista I think it would be safest if this called `self.class.new` just in case someone is subclassing `AST::Table`