preparing for some refactoring