basic classes and constructors added