Added classes for semantic analysis