adds some refactoring