Changed Expression subclass structure and visitor pattern