Base classes that help to implement custom languages