some refactoring of classes