first version of basic classes