- refactoring according to use cases