declaration of basic classes