first version of the class