modifications to make possible to instantiate only once each class